Linux下的有名管道(01)---知识点说明

有名管道(FIFO):

有名管道是持久稳定的。

有名管道存在于文件系统中。

有名管道能让无关联的进程之间交换数据。

有名管道和文件操作类似,都是有路径的。

shell操作有名管道:

创建有名管道:mkfifo[option] name,创建一个名为name的有名管道。

读取管道数据:cat< name,从名为name的有名管道中读取数据。

写入管道数据:[command]> name,将命令的结果写入到名为name的有名管道中。

关闭有名管道:unlinkname,关闭名为name的有名管道,或使用rm –rf –name

函数操作有名管道:

创建有名管道fifo

man 3 mkfifo

#include <sys/types.h>

#include <sys/stat.h>

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

函数返回值:返回0,代表创建管道成功;返回-1,代表创建管道失败。

函数的参数:第一个参数是管道所在的路径和名字;第二个参数是管道的权限。

删除有名管道fifo:

man 3 unlink

#include <unistd.h>

int unlink(const char *path);

函数返回值:返回值为0,代表成功删除;返回值为-1,代表删除失败。

函数的参数:参数指的是管道所在的路径和名字。

打开和关闭fifo:

int open(const char *pathname, int flags);

int close(int fd);

Linux的一切都是文件这一抽象概念的优势,打开和关闭FIFO和打开关闭一个普通文件操作是一样的。

FIFO的两端使用前都必须要打开。

open中如果参数flagsO_RDONLY将阻塞open调用,一直到另一个进程为写入数据打开FIFO为止。相同的,O_WRONLY也导致阻塞一直到为读出数据打开FIFO为止。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值