如果我们用O_NONBLOCK集打开FIFO,为什么用只读或只写集打开,open()
行为不同?
由于通信语义,存在不对称性。
如果当时没有读取器,则在非阻塞模式下打开写入应该会失败,因为写入没有读取器的通道是没有用的(没有任何读取器写入应该失败)。
在非阻塞中打开阅读可以成功(并且确实成功),因为它声明某人将来(最终)能够阅读某些内容。