您的位置:首页 > 其它

管道相关函数(1)-pipe

2017-12-11 20:04 344 查看
定义:

int pipe(int filedes[2]);

表头文件:

#include<unistd.h>

说明:

pipe()会建立管道, 并将文件描述词由参数filedes数组返回。filedes[0]为管道里的读取端, filedes[1]则为管道的写入端。

返回值:

若成功则返回零, 否则返回-1, 错误原因存于errno中。

相关函数:

mkfifo, popen, read, write, fork

错误代码:

EMFILE 进程已用完文件描述词最大量。

ENFILE 系统已无文件描述词可用。

EFAULT 参数filedes数组地址不合法。

示例:

#include <stdlib.h>
#include <unistd.h>
#define MAXLINE 80
int main(void)
{
int n;
int fd[2];
pid_t pid;
char line[MAXLINE];
if (pipe(fd) < 0) {
perror("pipe");
exit(1);
}
if ((pid = fork()) < 0) {
perror("fork");
exit(1);
}
if (pid > 0) { /* parent */
close(fd[0]);
write(fd[1], "hello world\n", 12);
wait(NULL);
} else { /* child */
close(fd[1]);
n = read(fd[0], line, MAXLINE);
write(STDOUT_FILENO, line, n);
}
return 0;
}


运行结果:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: