【发布时间】:2013-01-30 00:11:14
【问题描述】:
在 C 伪代码中:
while (1) {
fifo = open("fifo", O_RDONLY | O_NONBLOCK);
fd_set read;
FD_SET(fifo, &read);
select(nfds, &read, NULL, NULL, NULL);
}
进程睡眠由select() 触发,直到另一个进程写入fifo。之后它总是会找到fifo 作为可读的文件描述符。
如何避免这种行为(即fifo被读取一次后,如何使其在再次写入之前被发现为不可读?)
【问题讨论】:
-
那么,你想要发生什么?
标签: c select file-descriptor fifo