首页 > 系统服务 > 详细

Linux FIFO读写时堵塞与非堵塞的效果

时间:2020-05-20 12:21:24      阅读:40      评论:0      收藏:0      [点我收藏+]

Linux FIFO虽然在本地能看到,但是实际数据是在内存中的,具体Linux 管道的原理请直接搜索,这里记录下读写时设置堵塞与非堵塞的效果,以备查看:

1.

写进程阻塞,读进程阻塞。

先运行写进程(被阻塞),再运行读进程,一切正常。
先运行读进程(被阻塞),再运行写进程,一切正常。

2.

写进程阻塞,读进程非阻塞。

就改一句代码 fd=open(FIFO_NAME,O_RDONLY | O_NONBLOCK),下面类似。

先运行写进程(被阻塞),再运行读进程,一切正常。

先运行读进程,程序直接崩掉(Segmentation fault (core dumped)),想想也挺自然的,没东西你还要读,而且不愿等。。。


3.

写进程非阻塞,读进程阻塞。

先运行写进程,open调用将返回-1,打开失败。

先运行读进程(被阻塞),再运行写进程,一切正常。

 

4.

写进程非阻塞,读进程非阻塞。

其实就是上面2,3类各不正常的情况

Linux FIFO读写时堵塞与非堵塞的效果

原文:https://www.cnblogs.com/gisvito/p/12922841.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!