螃蟹分享下载站:专注做好下载站 www.ahjiajia.com!
您当前所在位置:首页 >软件教程 >应用教程

Linux环境进程间通信:管道及有名管道(4)

时间:2024-09-03 10:39 来源:网络

系统大全为您提供

当要写入的数据量不大于PIPE_BUF时,linux将保证写入的原子性。如果当前FIFO空闲缓冲区能够容纳请求写入的字节数,写完后成功返回;如果当前FIFO空闲缓冲区不能够容纳请求写入的字节数,则返回EAGAIN错误,提醒以后再写;

对FIFO读写规则的验证:

下面提供了两个对FIFO的读写程序,适当调节程序中的很少地方或者程序的命令行参数就可以对各种FIFO读写规则进行验证。

程序1:写FIFO的程序

#include #include #include #include

程序应用说明:

把读程序编译成两个不同版本:

阻塞读版本:br

以及非阻塞读版本nbr

把写程序编译成两个四个版本:

非阻塞且请求写的字节数大于PIPE_BUF版本:nbwg

非阻塞且请求写的字节数不大于PIPE_BUF版本:版本nbw

阻塞且请求写的字节数大于PIPE_BUF版本:bwg

阻塞且请求写的字节数不大于PIPE_BUF版本:版本bw

下面将使用br、nbr、w代替相应程序中的阻塞读、非阻塞读

验证阻塞写操作:

当请求写入的数据量大于PIPE_BUF时的非原子性:

nbr 1000

bwg

当请求写入的数据量不大于PIPE_BUF时的原子性:

nbr 1000

bw

验证非阻塞写操作:

当请求写入的数据量大于PIPE_BUF时的非原子性:

nbr 1000

nbwg

请求写入的数据量不大于PIPE_BUF时的原子性:

nbr 1000

nbw

不管写打开的阻塞标志是否设置,在请求写入的字节数大于4096时,都不保证写入的原子性。但二者有本质区别:

对于阻塞写来说,写操作在写满FIFO的空闲区域后,会一直等待,直到写完所有数据为止,请求写入的数据最终都会写入FIFO;

 

 

  以上就是系统大全给大家介绍的如何使的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击系统大全官网吧。 

 

本文来自系统大全http://www.win7cn.com/如需转载请注明!

相关应用
同步课堂学生
107.2MB / 3.0.41
央视影音HD
76.1MB / 7.9.3
外研社德语
23.5MB / 3.8.6
上啥班
103.9MB / 5.4.5
摩托范
186.0MB / 3.59.40
Kindle
103.0MB / 8.89.3.10(2.0.3821.0-kfc)
启信宝
48.1MB / 9.26.20
Only婚恋
57.8MB / 5.4.0
来疯
163.6MB / 9.1.6
最美装修
42.6MB / 3.4.0
掌上火车票
18.5MB / 9.1.0
哆哆早教
118.6MB / 7.2.1
中影电影通
36.0MB / 2.41.0