讲师博文
关于管道使用规则的总结 来源 : 未知     2014-08-21

中进程间通信方式中,有一种为无名管道。对管道的读写操作需要注意以下的使用规则:

1、当读的时候:

(1) 有写端,至少有一个进程,有写端存在

有数据:使用read可以读到pipe中的数据,返回实际读取的字节数

无数据:阻塞,等待其他进程向管道写入数据。

(2) 无写端,所有进程,写端都关闭了。

有数据:使用read可以读到pipe中的数据,返回实际读取的字节数

无数据:无写端意味着所有的写描述符关闭了,不会向管道中写入数据了,会立刻返回0.

2、 当写的时候:

(1) 有读端,至少有一个进程,读端存在。

有空间:可使用write向管道中写入内容,返回实际写入的字节数。

空间不足:有多少写多少,没写完的阻塞等待,直到其他进程将管道中数据读走,才继续写入数据。可写一个程序来测试无名管道的大小。(64K)

(2) 无读端,所有进程,写端都关闭了。

没有读端的时候,想写管道,会得到内核给的SIGPIPE信号。管道破裂。

管道读端不存在的时候,内核是不允许向管道内写入数据的。以下程序能够验证:

扫码申领本地嵌入式教学实录全套视频及配套源码

上一篇:shell脚本的编写基础

下一篇:基于S5PC100裸机程序之SPI(下)

400-611-6270

Copyright © 2004-2024 华清远见教育科技集团 版权所有
京ICP备16055225号-5京公海网安备11010802025203号