我有一个不断需要写入信息的过程。此外,还有第二个进程,它有时连接到写入过程的“信息通道”,并且应该读取写入的信息,因为它已连接。此过程还可能会断开连接,然后再次重新连接几次。
目前,我通过在c++程序中使用mkfifo()通过命名管道实现了这一点。不幸的是,如果我在这个fifo上调用open(),它就会阻塞,直到一个进程打开fifo进行读取。这对于命名管道来说是很正常的,但是我需要这个open命令是非阻塞的。
在这种情况下,您是否知道mkfifo的替代方案?
海因里希
发布于 2010-10-23 20:10:46
您可以在环回接口上使用Unix域套接字或常规TCP套接字。
发布于 2010-10-23 19:23:26
您可以使用共享内存或mmap。它应该包含对最旧数据的偏移量,以及用于存储数据的内存块
fifo限制为64k (取决于分布和某些设置)。
发布于 2010-10-27 15:44:29
我终于使用了unix消息队列,读写器can.be完全独立启动,一切都可以无阻塞地执行
https://stackoverflow.com/questions/4003311
复制相似问题