0

我有两个程序——其中一个正在生成一些数据并将它们放入 FIFO,另一个从 FIFO 中读取这些数据并对其进行处理。如何限制阅读节目的数量?我考虑过限制 FIFO 的大小或检查里面有多少数据,但我没有发现任何有趣的东西。谢谢你的帮助。

4

2 回答 2

1

fifo 管道是一个系统文件,因此您可以控制对它的访问的唯一方法是通过通常的方式(所有权和权限)。但也见man flock。文件锁定在 linux 上是不可强制执行的,也就是说,你可以忽略它,但是如果你实现你的读者服从文件锁定,那么问题就解决了。

所以:如果问题是不需要的和侵入性的访问,请使用所有权和权限来防止这种情况。否则,使用文件锁。

于 2012-05-05T09:21:46.367 回答
0

使用 (f)stat() 检查 FIFO 的链接计数。如果超出您决定的某个限制,让阅读程序拒绝打开它?

于 2012-05-05T09:19:31.630 回答