无名管道Unix/Linux进程通信入门

无名管道的父子进程通信,蛮适合入门 Unix/Linux 核心编程的场景。pipe函数用起来不复杂,返回一对文件符,一个读、一个写,配合fork就能搞定 IPC。嗯,要注意管道建立在当前进程里其实没啥用,关键还得是子进程。

函数签名长这样:

int pipe(int fd[2]);

成功返回 0,失败返回-1,一看就 C 风格。你拿到fd[0]就可以读,fd[1]能写,父进程关写端、子进程关读端,互不干扰,配合得刚刚好。

这种机制还挺适合写些测试工具,或者做下数据的中转桥。写代码的时候记得防一下死锁,比如说写入后不关写端,读端就卡住等数据,可别踩坑。

如果你对进程通信比较感兴趣,可以顺手看看Node.js 创建子进程详解Socket 文件符传递这两个文章,扩展思路。

ppt 文件大小:4.67MB