FIFO管道是一种文件属性,在Linux上创建FIFO很容易。下面,我将详细讲解FIFO流水线的创建和应用,感兴趣的朋友可以看看。
FIFO又称命名管道,是Linux系统软件中进程间通信的一种方式。
FIFO和pipe的区别取决于:
FIFO系统文件中有匹配的inode,可以ss="superseo">ss="superseo">根据ls命令查询。
sh-3.2#ls-lhF./fifo_file
100prwxrwxrwx1根根01970年1月1日./fifo_file|
sh-3.2#
因为它有名字,所有的进程都可以访问它,所以可以用FIFO在两个进程之间随意通信。
管道没有名称,并且在当前系统文件中找不到它的存在。
仅用于父子进程、兄弟进程等相关进程之间的通信。
FIFO可以通过以下方式创建:
1.调用umask系统调用来设置创建文档的管理权限,
#包含《sys/types.h》
#包括《系统/统计/小时》
mode_tumask(mode_tmask);
2.调用unlink系统调用,先删除现有的fifo,
#包括《unistd.h》
intunlink(constchar*pathname);
3.调用mkfifo函数库创建一个fifo文件,
#包含《sys/types.h》
#包含《sys/stat.h》
intmkfifo(constchar*pathname,mode_tmode);
或者可以根据调用mknod系统调用创建一个FIFO文件,具体主参数mode为S_IFIFO,
#包含《sys/types.h》
#包含《sys/stat.h》
#包含《fcntl.h》
#包括《unistd.h》
intmknod(constchar*pathname,mode_tmode,dev_tdev);
注意:
1.使用FIFO进行通信,每次传输的数据信息要限制在PIPE_BUF
2.对FIFO的访问和对常规文件的访问是一样的,可以通过open/read/write/close等系统调用来访问。
FIFO的应用包括:
1.简单的 *** 作员/客户问题,一个进程读取数据,一个进程写入数据信息;
2.完成客户端/服务器架构的程序流程,手机客户端和服务器按照FIFO进行通信。
以上是我总结的在Linux下创建FIFO流水线的方法的详细介绍。除了FIFO流水线的创建,本文还较为详细地介绍了低位FIFO的应用以及应用中应注意的常见问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)