单向命名管道

时间:2012-09-25 22:06:47

标签: c multithreading networking pipe named-pipes

一个简单的问题。如果我有2个程序需要访问1个命名管道。如果使用open()函数在一端读取O_RDONLY标志,那么另一端是否能够以O_WRONLY打开文件并能够写入它?其他程序会获得书面数据吗?

1 个答案:

答案 0 :(得分:1)

你可以做到。

如果您使用O_RDWR打开管道,它将不会阻止。

如果您使用O_RDONLY打开管道,它将阻止,直到作者打开管道,除非您使用O_NONBLOCK确保成功打开管道。

如果您使用O_WRONLY打开管道,它将会阻止,直到读者打开管道,但如果您还使用O_NONBLOCK,则open()将失败。