linux学习笔记之进程间的通信--有名管道

这篇博客介绍了Linux中的有名管道(FIFO),它是一种在文件系统中可见的管道,具有文件读写方式调整等特性。文章详细阐述了创建、打开、读写、关闭及卸载有名管道的步骤和相关函数的用法,如mkfifo、open、read、write、close及unlink。
摘要由CSDN通过智能技术生成

有名管道 ====》有名称的管道 ===》FIFO ====》在文件系统中可见文件

具备基本的管道所有特性:
具有有名管道自有的特性:
1、文件系统可见
2、文件读写方式调整;
3、有名管道文件可以单独创建;

使用框架:
创建有名管道 =》打开有名管道》读写有名管道 ==》关闭有名管道 ==》卸载有名管道

1、创建有名管道:
#include <sys/types.h>
#include <sys/stat.h>

int mkfifo(const char *pathname, mode_t mode);
功能:该函数可以在指定路径下创建指定权限的有名管道文件。
参数:pathname 要创建的有名管道路径+名称;
mode 要创建的管道文件的权限;
返回值:成功 0
失败 -1;

2、打开有名管道:open
int open(const char *pathname, int flags);
功能:使用该函数打开一个已经创建好的有名管道;
参数: pathname 管道名称+路径
flags O_RDONLY 只读方式打开管道
O_WRONLY 只写方式打开管道
返回值:成功 如果以只读方式打开,则返回值为管道读端
如果以只写方式打开,则返回值为管道写端

	失败  -1;

注意:由于管道必须保证读写端同步,如果一端不存在,
则另一端在该函数位置会阻塞等待。

3、管道的读写: 文件io的read 和 write

读: ssize_t read(int fd, void *buf, size_t count);
写: ssize_t write(int fd, const void *buf, size_t count);

4、有名管道的关闭: close() ;

5、卸载有名管道: unlink();
int unlink(const char *pathname);
功能:卸载执行路径下的有名管道文件,即删除管道文件;
参数: pathname 要卸载的目标管道文件
返回值:成功 0
失败 -1;

//有名管道写操作
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
#define N 32
int main()
{
   
     int fd;
     int ret;
     ret=
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值