摘要: 有名管道 因为匿名管道只能用于有亲缘关系间的进程通信,所以为了没有亲缘关系之间的进程通信,提出了有名管道 有名管道(FIFO)提供了一个路径名与之关联,并以FIFO的文件形式存放在文件系统中,打开方式和普通文件一样。这样进程之间只需要访问该路径,就可以彼此通过FIFO通信。 一旦打开FIFO,就可以 阅读全文
posted @ 2023-02-09 14:57 小秦同学在上学 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 管道的读写特点 使用管道时需要注意以下几种特殊的情况(假设都是阻塞IO操作) 所有的指向管道写端的文件描述符都关闭了(即管道写端的文件描述符的引用计数为0)。有进程从管道的读端读数据,那么管道中剩余的数据被读取以后,再次read会返回0,就像读到文件末尾一样。 如果有指向管道写端的文件描述符没有关闭 阅读全文
posted @ 2023-02-09 11:50 小秦同学在上学 阅读(67) 评论(0) 推荐(0) 编辑
摘要: /* - 实现 ps aux | grep *** - 子进程:执行ps aux 子进程结束后,将数据发送给父进程 - 父进程:获取到数据,并进行过滤 - pipe() - execlp():默认把结果输出的标准终端,需要把子进程的stdout_fileno标准输出重定向到管道的写端 dup2 */ 阅读全文
posted @ 2023-02-09 11:11 小秦同学在上学 阅读(18) 评论(0) 推荐(0) 编辑
摘要: /* #include <unistd.h> int pipe(int pipefd[2]); 功能:创建匿名管道,用于进程间通信 参数: - int pipefd[2] 这个数组是一个传出参数 - pipefd[0]对应管道的读端 - pipefd[1]对应管道的写端 返回值: 成功:返回0 失败 阅读全文
posted @ 2023-02-09 10:38 小秦同学在上学 阅读(28) 评论(0) 推荐(0) 编辑