求教,UNP2 FIFO章节的问题
UNP2(第二版)46~47页的那段话看不懂~~
例子为:一个简单的服务器打开一个众所周知的FIFO来读,等待客户写消息。
书上说:打开该管道两次,一次读一次写,readfifo描述符用于读,dummyfd则从来不用
readfifo = open(FIFO, O_RDONLY, 0);
dummyfd = open(FIFO, O_WRONLY, 0);
问题1:(书上原文)如果不这么做(打开管道两次), 那么每当一个客户终止,该FIFO就变空,服务器read返回0,表示一个文件结束符。我们不得不close该FIFO,并重新打开。
问题2:如果我们总有一个该FIFO的描述符打开用于写,那么当没有客户时,服务器read一定不会返回0以指示读到一个文件结束符。相反服务器只是阻塞在read调用中,等待。
红色部分不太理解,望大家赐教!