如何在linux下使用持久命名管道?

发布于 2024-11-30 21:17:40 字数 153 浏览 1 评论 0 原文

使用命名管道有时非常方便,例如mkfifo file.fifo

但 file.fifo 不是持久的,如果计算机重新启动或编写器进程崩溃,我无法从管道中获取任何内容。那么,有没有什么方法可以让管道数据存储在磁盘而不是内存中呢?

谢谢。

Use named pipe some times very convenient, such as mkfifo file.fifo.

but the file.fifo is not persistent, if the computer restarted or the writer process crashed, I can get nothing from the pipe. so, are there any methods to let the piped data store in disk rather than memory?

thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故事与诗 2024-12-07 21:17:40

最简单的解决方案是使用纯文件来存储数据。例如,使用管道(或类似的)来通知有新数据。当然,您必须注意进程间锁定。

或者您可以使用“消息队列”(请参阅​​mqueue.h)。它们在进程崩溃的情况下是持久的,但如果系统重新启动则不会。

或者您可以使用实现“持久消息队列”的第三方库,例如 MQTTRabbitMQ

The simplest solution is to use plain files to store the data. For example, and use a pipe (or similar) to notify that there are new data, for example. You must take care of interprocess locking, of course.

Or you can use "message queues" (see mqueue.h). They are persistent in case of process crash, but not if the system is rebooted.

Or you can use a third-party library that implements "persistent message queues", such as MQTT or RabbitMQ.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文