Linux创建FIFO文件类型的方法

2016-03-31 15:50 7 1 收藏

下面图老师小编跟大家分享一个简单易学的Linux创建FIFO文件类型的方法教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!

【 tulaoshi.com - 服务器 】

Linux创建FIFO文件类型的方法

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

Linux创建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文件,

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/fuwuqi/)

  #include 《sys/types.h》

  #include 《sys/stat.h》

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/fuwuqi/)

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

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

  #include 《sys/types.h》

  #include 《sys/stat.h》

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/fuwuqi/)

  #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的使用及其注意事项,在使用的时候需特别注意。

来源:https://www.tulaoshi.com/n/20160331/2051299.html

延伸阅读
标签: 服务器
在Linux下创建分区和文件系统的方法详解   在 Linux 中创建分区或新的文件系统通常意味着一件事:安装 Gnome Parted 分区编辑器(GParted)。对于大多数 Linux 用户而言,这是唯一的办法。不过,你是否考虑过在终端创建这些分区和文件系统?当然可以!以下就是方法! 使用 CFdisk 创建一个基本的 Linux 分区 以下是如何在命令行...
标签: 电脑入门
有用户在使用Win10系统时,可能由于安装其他浏览器时错误操作,导致IE浏览器无法打开诸如HTML等一些格式的网页文件。要解决这个问题,我们需要设置IE浏览器关联的文件类型。下面是操作步骤。 步骤 1.打开Internet选项。 2.点击程序,选择设置关联。 3.选择要关联的扩展名,保存即可。
标签: 电脑入门
setfacl是Linux下设置文件访问控制列表的命令,可用来创建文件,能够继承目录的权限,有些功能类似于chmod命令,下面图老师小编就给大家介绍下Linux使用setfacl命令创建权限文件的方法,一起来学习下吧。 下面以 root 用普通用户 user1 。在目录/mnt下 [root@RedHat-7 mnt]# setfacl -m u:user1:rwx share //为目录添加ower = user1 ...
标签: 电脑入门
Linux系统操作中,S3QL可用于创建一个加密文件系统,能够在线存储数据,那么基于Amazon S3的S3QL要如何创建一个云端加密文件系统呢?随图老师小编一起来了解下吧。 Amazon S3 和 Google Cloud Storage 之类的商业云存储服务以能承受的价格提供了高可用性、可扩展、无限容量的对象存储服务。为了加速这些云产品的广泛采用,这些提供商为他们的...
标签: Web开发
代码如下: asp:RegularExpressionValidator   id="FileUpLoadValidator" runat="server"   ErrorMessage="Upload Jpegs and Gifs only."   ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))(.jpg|.JPG|.gif|.GIF)$"   ControlToValidate="FileUpload...

经验教程

271

收藏

11
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部