如何限制fifo用户的数量?

时间:2012-05-05 09:12:51

标签: c unix fifo

我有两个程序 - 其中一个是生成一些数据并将它们放入FIFO中,另一个是从FIFO中读取这些数据并用它们做一些事情。如何限制阅读计划的数量?我想到限制FIFO的大小或检查里面有多少数据,但我没有发现任何有趣的东西。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

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

因此:如果问题是不受欢迎且侵入性的访问,请使用所有权和权限来阻止此操作。否则,请使用文件锁。

答案 1 :(得分:0)

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