如果我们以 O_NONBLOCK 设置打开 FIFO,为什么以只读或只写设置打开,open()
的行为会有所不同?
最佳答案
由于通信语义存在不对称性。
如果当时没有读取器,则以非阻塞模式打开写入应该会失败,因为写入没有读取器的 channel 是没有用的(没有任何读取器写入应该会失败)。
以非阻塞方式打开读取可以成功(并且确实如此),因为它声明有人(最终)将来能够读取某些内容。
关于c - open() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47124353/