无名管道Unix/Linux进程通信入门
无名管道的父子进程通信,蛮适合入门 Unix/Linux 核心编程的场景。pipe
函数用起来不复杂,返回一对文件符,一个读、一个写,配合fork
就能搞定 IPC。嗯,要注意管道建立在当前进程里其实没啥用,关键还得是子进程。
函数签名长这样:
int pipe(int fd[2]);
成功返回 0,失败返回-1,一看就 C 风格。你拿到fd[0]
就可以读,fd[1]
能写,父进程关写端、子进程关读端,互不干扰,配合得刚刚好。
这种机制还挺适合写些测试工具,或者做下数据的中转桥。写代码的时候记得防一下死锁,比如说写入后不关写端,读端就卡住等数据,可别踩坑。
如果你对进程通信比较感兴趣,可以顺手看看Node.js 创建子进程详解和Socket 文件符传递这两个文章,扩展思路。
4.67MB
文件大小:
评论区