Linux内核开发  - 讨论区

标题:FIFO匿名通道

2011年07月06日 星期三 16:55

read函数:

当没有数据可以读的时候,read通常会阻塞,直到有数据到达。如果管道另外一端关闭了,也就是说没有进程往里面写了,这时候read如果还是阻塞就没有意义了,因此实际中read会返回0而不是阻塞。

如何实现server继续等待:

a、当read调用返回0 的时候,关闭并重新打开服务器管道。

b、对自己的服务器管道打开一个文件描述符。这样read调用将总是阻塞。

这个b方法,我没有理解,请指教

 

2011年07月07日 星期四 12:07

对服务器管道以读写模式打开, 这样管道至少有一个读者存在, 所以管道不会因为其它读者的退出而关闭. 不过这种方法POSIX没有明确定义, 所以是否好用取决于系统实现; linux上是好用的.

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2022

    京ICP备05028076号