命名管道
之前我们使用的都是匿名管道,命名管道与之不同的就是他拥有实体文件,文件类型为p,而且他的文件大小永远为0
这时因为打开文件的同时也打开了缓冲区
当两个进程分别打开管道时,如果分别分配两个缓冲区,连接着管道文件本体,这样实在低效
不如直接两个进程连接同一个缓冲区
命名管道也称之为fifo,先进先出,也可以理解其是单向的
创建命名管道
命令行
1 | mkfifo fifo |
函数
1 | mkfifo("./testfifo",0666); |
第一个参数是管道文件,第二个参数是权限,和open系统调用一样
他的返回值是int类型,返回值为-1时表示出创建管道失败
创建管道文件完成之后的任务就简单了
只用像正常读写文件的操作进行读写就可以了
可以使用系统调用接口,也可以使用C语言接口都是没问题的