Linux:打开命名管道进行写入时超时

标签 linux timeout named-pipes

我有一个进程通过命名管道写入另一个进程。读取器进程可能会行为不端并且不会打开管道进行读取。如果发生这种情况,我的行为良好的编写器进程将挂起其 open() 调用。 我希望编写器能够在打开管道时超时,以便在读取器未及时打开管道时它可以清理并继续运行。非阻塞 open() 立即返回错误。

最佳答案

如果这是一个选项,请在这种情况下使用 unix 域套接字。由于 FIFO 的语义,这是一种笨拙的方法,而且无论如何您都可能会遇到问题。如果有必要,这种设计不会超出一个客户。您也许可以在短期内对 FIFO 执行您的意愿,但我怀疑您会后悔的。

套接字更适合这种情况。您的监听套接字非常适合您现有的 poll(),客户端连接,作者转储他的数据,两端断开连接,每个人都很高兴。没有大惊小怪,没有困惑。

关于Linux:打开命名管道进行写入时超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9610774/

相关文章:

c# - 如何在 Linux 上的 .NET 6 中写入文件描述符 3 而不是 stdout?

c - 监控 CPU 温度增量 T 内核模块

c - 是否有 Linux C API 调用来查询挂载的文件系统以查看它是否是只读的?

timeout - 使用 ActiveMerchant 时如何处理超时?

c# - 套接字在一端断开连接,防火墙吗?

c++ - 任何用于 RPC over pipes/internal linux sockets 的开源 C/C++ 库/框架?

ffmpeg - 命名管道,它们可以流式传输数据吗?

c - 命名管道消息损坏 (Win32,C)

named-pipes - USB 大容量存储小工具上的命名管道/FIFO,用于为汽车、码头等流式传输音频。

javascript - 请求超时