Linux进程间通信——命名管道

279 words

命名管道

之前我们使用的都是匿名管道,命名管道与之不同的就是他拥有实体文件,文件类型为p,而且他的文件大小永远为0

这时因为打开文件的同时也打开了缓冲区

当两个进程分别打开管道时,如果分别分配两个缓冲区,连接着管道文件本体,这样实在低效

不如直接两个进程连接同一个缓冲区

命名管道也称之为fifo,先进先出,也可以理解其是单向的

创建命名管道

命令行

1
mkfifo fifo

函数

1
mkfifo("./testfifo",0666);

第一个参数是管道文件,第二个参数是权限,和open系统调用一样

他的返回值是int类型,返回值为-1时表示出创建管道失败

创建管道文件完成之后的任务就简单了

只用像正常读写文件的操作进行读写就可以了

可以使用系统调用接口,也可以使用C语言接口都是没问题的

Comments