没有合适的资源?快使用搜索试试~ 我知道了~
linux c有名管道简单说明-fisher0821-ChinaUnix博客1
需积分: 0 0 下载量 112 浏览量
2022-08-03
21:24:00
上传
评论
收藏 345KB PDF 举报
温馨提示
试读
4页
linux c有名管道简单说明fisher0821ChinaUnix博客加关注短消息论坛加好友张子萌博客访问: 39461博文数量: 34博客积分: 948
资源详情
资源评论
资源推荐
2016/7/31 linuxc有名管道简单说明fisher0821ChinaUnix博客
http://blog.chinaunix.net/uid24948659id2983111.html 1/5
加关注
短消息
论坛
加好友
cf630314
张子萌
prostory
LinCanYe
gpfeng_c
gengshen
博客访问: 39461
博文数量: 34
博客积分: 948
博客等级: 准尉
技术积分: 380
用 户 组: 普通用户
注册时间: 2010-11-19 20:47
文章分类
全部博文(34)
C/C++(7)
杂文(0)
Other(3)
OS(3)
多媒体(2)
硬件技术(0)
ARM(3)
Linux(13)
未分配的博文(3)
文章存档
2012年(2)
2011年(30)
2010年(2)
我的朋友
最近访客
Chinaunix首页 | 论坛 | 认证专区 | 博客 登录 | 注册
fisher0821
linuxc有名管道简单说明 2011102919:08:00
分类: LINUX
linux c有名管道简单说明
http://hi.baidu.com/shiyaodesy/blog/item/010545c21f3aa734e5dd3bcb.html
有名管道的创建
#include
#include
int mkfifo(const char * pathname, mode_t mode)
该函数的第一个参数是一个普通的路径名,也就是创建后FIFO的名字。第二个参数
与打开普通文件的open()函数中的mode 参数相同。如果mkfifo的第一个参数是一个已经存在
的路径名时,会返回EEXIST错误,所以一般典型的调用代码首先会检查是否返回该错误,如
果确实返回该错误,那么只要调用打开FIFO的函数就可以了。一般文件的I/O函数都可以用于
FIFO,如close、read、write等等。
1.1 有名管道的打开规则
有名管道比管道多了一个打开操作:open。
FIFO的打开规则:
如果当前打开操作是为读而打开FIFO时,若已经有相应进程为写而打开该FIFO,则当前打开
操作将成功返回;否则,可能阻塞直到有相应进程为写而打开该FIFO(当前打开操作设置了
阻塞标志);或者,成功返回(当前打开操作没有设置阻塞标志)。
如果当前打开操作是为写而打开FIFO时,如果已经有相应进程为读而打开该 FIFO,则当前打
开操作将成功返回;否则,可能阻塞直到有相应进程为读而打开该FIFO(当前打开操作设置
了阻塞标志);或者,返回ENXIO错误(当前打开操作没有设置阻塞标志)。对打开规则的验
证参见附2。
1.2 有名管道的读写规则
从FIFO中读取数据:
约定:如果一个进程为了从FIFO中读取数据而阻塞打开FIFO,那么称该进程内的读操作为设
置了阻塞标志的读操作。
@ 如果有进程写打开FIFO,且当前FIFO内没有数据,则对于设置了阻塞标志的读操作来
说,将一直阻塞。对于没有设置阻塞标志读操作来说则返回-1,当前errno值为EAGAIN,提醒
以后再试。
@ 对于设置了阻塞标志的读操作说,造成阻塞的原因有两种:当前FIFO内有数据,但有
其它进程在读这些数据;另外就是FIFO内没有数据。解阻塞的原因则是FIFO中有新的数据写
入,不论信写入数据量的大小,也不论读操作请求多少数据量。
fisher0821
just do it
首页 | 博文目录 | 关于我
2016中国数据库技术大会门票申请
博文
陈游泳
- 粉丝: 27
- 资源: 303
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0