有没有办法让作者知道读者已经关闭了命名管道(或退出)的末尾而没有写入它?
我需要知道这一点,因为我写入管道的初始数据是不同的;读者期望在其余数据到来之前有一个初始标题.
目前,当我的write()因EPIPE失败时,我会检测到这一点.然后我设置了一个标志,上面写着“下次发送标题”.但是,在我写任何东西之前,读者可以关闭并重新打开管道.在这种情况下,我从来没有意识到他做了什么,也没有发送他期待的标题.
是否存在任何类型的异步事件类型可能对此有所帮助?我没有看到任何信号被发送.
请注意,我没有包含任何语言标记,因为这个问题应该被视为与语言无关.我的代码是Python,但答案应该适用于C或任何其他具有系统调用级绑定的语言.