管道分为两种,一种是有名管道,一种是无名管道。
有名管道:
利用管道文件实现进程间通讯,管道文件仅仅是磁盘上的一个文件标识,其真实数据存储在内存上。对于管道文件的打开操作,必须是有读有写,否则open函数会阻塞;对于管道文件指向的内存中存储的数据,被读取后便不存在了。
命令:mkfifo filename
文件函数:open(打开文件),write(写数据),read(读取数据),close(关闭文件)。
代码实现:
无名管道:
相对有名管道,无名管道不存在管道文件,他必须借助父子进程共享fork之前打开的文件描述符,所以无名管道只能应用于父子进程之间的通讯。
无名管道创建于打开函数pipe只需要接收有两个元素的整型数组。
命令:int pipe(int fd)
函数与有名管道相同。
代码实现:
进程间通讯————管道
最新推荐文章于 2024-08-22 22:55:53 发布