【发布时间】:2014-04-16 19:01:24
【问题描述】:
我正在尝试进行一些程序间数据交换,我决定尝试使用命名管道。 我有一个非常基础的读者和一个非常基础的作者,取自示例答案here。
我的第一个问题是我不能使用两次
write(...),除非我让程序休眠。有办法解决吗? 在每个条目之后调用sleep(1)会增加处理时间。我还希望有多个进程写入同一个 fifo。那可能吗?我的尝试返回了很多问题...
最后有没有办法让fifo携带一个对象而不是一个字符串?
【问题讨论】:
-
'C++ 命名管道'没有这样的东西吗?!?
-
如果我在 C++ 和命名管道之间添加一个“&”会更好吗?
-
“我不能使用两次 write()”是什么意思?您应该能够重复写入 - 只是一旦管道缓冲区填满,
write()将阻塞,直到管道中有read()s 以腾出一些空间...确保检查write()的返回值并在适当的时候检查errno。
标签: c++ unix named-pipes fifo