【问题标题】:Single direction named pipes单向命名管道
【发布时间】:2012-09-25 22:06:47
【问题描述】:

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

【问题讨论】:

  • 命名管道基本上就是这样工作的:一个程序写入,另一个程序读取。当你尝试它时发生了什么?

标签: c multithreading networking pipe named-pipes


【解决方案1】:

你可以这样做。

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多