一个简单的问题。如果我有2个程序需要访问1个命名管道。如果使用open()函数在一端读取O_RDONLY
标志,那么另一端是否能够以O_WRONLY
打开文件并能够写入它?其他程序会获得书面数据吗?
答案 0 :(得分:1)
你可以做到。
如果您使用O_RDWR
打开管道,它将不会阻止。
如果您使用O_RDONLY
打开管道,它将阻止,直到作者打开管道,除非您使用O_NONBLOCK
确保成功打开管道。
如果您使用O_WRONLY
打开管道,它将会阻止,直到读者打开管道,但如果您还使用O_NONBLOCK
,则open()
将失败。