Linux创建FIFO文件类型的方法


  FIFO管道是一种文件类型,在Linux上创建FIFO非常容易,FIFO文件固有管道的特性,但和pipe管道有一定的区别,下面小编将针对FIFO管道的创建和使用做个详细介绍,以便你有个详细的了解。

  FIFO,又称作命名管道(named pipe),它是Linux系统中用于进程间通信的一种方法。

  FIFO和pipe的区别在于:

  FIFO在文件系统中有对应的inode,可以通过ls命令查看。

  sh-3.2# ls -lhF 。/fifo_file

  100 prwxrwxrwx 1 root root 0 Jan 1 1970 。/fifo_file|

  sh-3.2#

  正因为它有一个名字,所以任何进程都可以访问它,所以FIFO可用于任意两个进程之间的通信。

  pipe没有名字,在现有文件系统中无法查看到它的存在。

  它只能用于父子进程、兄弟进程等具有血缘关系的进程间通信。

  创建FIFO的方法如下:

  1. 调用umask系统调用来设定创建文件的权限,

  #include 《sys/types.h》

  #include 《sys/stat/h》

  mode_t umask(mode_t mask);

  2. 调用unlink系统调用先删除已经存在的fifo,

  #include 《unistd.h》

  int unlink(const char *pathname);

  3. 调用mkfifo库函数去创建一个FIFO文件,

  #include 《sys/types.h》

  #include 《sys/stat.h》

  int mkfifo(const char *pathname, mode_t mode);

  或者可以通过调用mknod系统调用并且指定参数mode为S_IFIFO也可以创建一个FIFO文件,

  #include 《sys/types.h》

  #include 《sys/stat.h》

  #include 《fcntl.h》

  #include 《unistd.h》

  int mknod(const char *pathname, mode_t mode, dev_t dev);

  注意:

  1. 使用FIFO进行通信,每次传输的数据要限定在PIPE_BUF之内;

  2. 对于FIFO的访问就像访问正规文件(regular file)一样,可以使用open/read/write/close等系统调用进行访问。

  使用FIFO的应用有:

  1. 单纯的生产者/消费者问题,一个进程读数据,一个进程写数据;

  2. 实现client/server架构的程序,客户端和服务器端通过FIFO进行通信。

  上面就是Linux创建FIFO管道的方法介绍了,本文除了介绍了FIFO管道的创建外,还稍微介绍了下FIFO的使用及其注意事项,在使用的时候需特别注意。



相关阅读:
Win7系统开机弹出模块xxx.dll已加载但找不到接入口DLLRegisterServer的原因及解决方法
curl不使用文件存取cookie php使用curl获取cookie示例
一个简单的php加密解密函数(动态加密)
JAVA实现链表面试题
MySQL命令行中给表添加一个字段(字段名、是否为空、默认值)
php中引用符号(&)的使用详解
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
如何恢复MySQL主从数据一致性
HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
win10 10240上安装Win10 RTM之后的内测版 无需密匙
关于js与php互相传值的介绍
javascript控制台详解
Yii PHP Framework实用入门教程(详细介绍)
javascript图片切换综合实例(循环切换、顺序切换)
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 小花园里的童话作文350字 五年级音乐教学计划下册 生命的颜色 五一随笔作文200字 苏言那年 2015事故调查报告 爱护我们共有的家园——地球作文800字 改良学校周边环境,营造和谐氛围150字 电大校园文化节活动的策划书-策划书_策划书 七年级下语文教学工作总结 我和爷爷奶奶的童年不一样550字 给10路公交车驾驶员叔叔的一封信 2015**公司党委保持共产党员先进性教育活动学习动员阶段工作总结报告 关于初中军训的作文 站在六月的末尾。。 那盘石磨 中英文自我介绍 2004年全国部分省市中考作文题目荟萃作文400字 社区安全生产大检查回头看工作总结2015 小学五年级作文500字:新学期带给我新生命 经典服装广告语 环保手抄报内容:环保名词 如果我是一朵小小的云作文550字 27岁,你连世界都没观过,哪儿来的世界观? 过年回家,传统文化铺就的世道人心 早安心语:要是知道以后的路,那就不叫人人生 有趣的2017年春节作文100字 每天的想法其实很多 预备党员思想汇报:实践科学发展观 一个女人的故事 烟水秋禅 小学五年级作文800字:自立才是意义 绿色奥运作文1000字 示从子河南尉班 北方月 实践三个代表的核心在保持党的先进性 西方“体育”与东方“修行” 县委工作会议上的讲话(宣传、组织、统战、政法四个方面内容) 看当今剩男剩女的分类 刘文忠诗集 初中·味道作文700字 龙作文150字 小学四年级作文400字:庄重的誓言 (何俊杰) 《闪闪的红星》观后感作文350字 你会知道,忘川河里有个我,守望着你 魔法仙子第二部1 镇中心小学读书活动方案 生活经典语录与其羡慕别人不如做好自己 可爱的 不爽自己

Copyright © 2016 phpStudy |