0

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

4

1 回答 1

1

你可以这样做。

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

如果您使用O_RDONLY打开管道,它将阻塞直到编写器打开管道,除非您使用O_NONBLOCK确保成功打开管道。

如果你使用O_WRONLY打开管道,它会阻塞直到读者打开管道,但如果你也使用O_NONBLOCKopen()将会失败。

于 2012-09-26T00:39:28.673 回答