close
常見的 FIFO reader 範例是
open("fifo", O_RDONLY | O_NONBLOCK);
一旦搭配 select, 會發現 select 經常被 trigger,
失去了 select 該有的功效 ...
原來當 peer 關掉 write end of FIFO,
FIFO read end 反而會一直被 EOF 觸發.
正解是
open("fifo", O_RDWR | O_NONBLOCK);
此時再搭配 select,
read end 就不會被 EOF 持續 trigger 了
Reference:
https://stackoverflow.com/questions/14594508/fifo-pipe-is-always-readable-in-select
全站熱搜
留言列表