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 © 2024
京ICP备05028076号