gpt4 book ai didi

Linux:介于 FIFO 文件和设备驱动程序之间的东西

转载 作者:太空宇宙 更新时间:2023-11-04 03:37:28 24 4
gpt4 key购买 nike

我有一个 Linux 守护进程,它正在生成一些数据。该守护进程不时地更新该数据。为简单起见,假设我们只有一个字节。现在我希望其他进程能够访问该数据,而最简单的方法(至少对我来说)就是使用某种文件中介器。

问题是我想从多个进程(或没有)异步读取数据,并且守护进程来更新该文件的内容。

是否可以从一个进程打开一个文件进行写入,并从一个或多个进程打开进行读取?是否有一些特殊的文件类型是为此目的而制作的?

页数我正在阅读有关 FIFO 文件和设备驱动程序的内容,但我不确定是否应该使用它们。

最佳答案

什么?您的要求未充分说明。

首先,是什么阻止您的读者在您更新数据时看到数据?

一种可能采用的方法是建议文件锁定(支持共享和独占模式)。了解有关羊群的信息。

另一种标准解决方案是创建一个新文件,然后将其重命名(2)为旧文件。该操作是原子的。

成功打开旧文件的读者当然会读取您的旧数据,但您没有提供任何同步,因此无论如何它本质上都是活泼的。 (事实上​​,即使有锁,也可能足够活跃。)读取进程每次想要获取新数据时都会打开+读取+关闭文件。

还可以通过修改文件来查看 inode 上的链接计数。如果为 0,则表明该文件已删除并且有更新。如果 clown 硬链接(hard link)旧文件,就会出现问题,因为这会让您错过更新。

关于Linux:介于 FIFO 文件和设备驱动程序之间的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31093542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com