管道相关函数(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数组地址不合法。
示例:
运行结果:
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; }
运行结果:
相关文章推荐
- c函数之【管道相关函数】
- 运行Dos命令并得到dos的输出文本(使用管道函数CreatePipe和PeekNamedPipe)
- linux下的pipe()管道函数
- linux下利用pipe函数实现类似 “cat a.txt | grep a”的管道命令
- linux下c编程之无名管道pipe()函数
- zeromq源代码分析5-2------管道相关的数据结构yqueue, ypipe, pipe等
- 管道函数dbms_pipe
- C语言popen()函数:建立管道I/O 通过POPEN来执行cat 或 du -sh 等相关linux命令
- zeromq源代码分析5-1------管道相关的数据结构yqueue, ypipe, pipe等
- (18)Linux_C_管道相关函数
- [Linux] 进程间通信--管道 pipe 函数详解 (出自 360百科)
- 管道函数相关_1
- [Linux] 进程间通信--管道 pipe 函数详解 (出自 360百科)
- 使用pipe()与fork()函数通过管道实现父子进程之间的通信
- zeromq源代码分析5-3------管道相关的数据结构yqueue, ypipe, pipe等
- Linux C 第十八章 管道相关函数
- [Linux管道和IPC]使用pipe函数创建管道
- 5.2 calendar--通用日期的相关函数(4)
- VC 时间相关函数
- C语言中建立和删除文件连接的相关函数讲解