我有两个程序 - 其中一个是生成一些数据并将它们放入FIFO中,另一个是从FIFO中读取这些数据并用它们做一些事情。如何限制阅读计划的数量?我想到限制FIFO的大小或检查里面有多少数据,但我没有发现任何有趣的东西。谢谢你的帮助。
答案 0 :(得分:1)
fifo管道是一个系统文件,因此您可以通过常规方式(所有权和权限)控制对它的访问。但另见man flock
。文件锁定在linux上是不可执行的,即你可以忽略它,但如果你实现你的读者服从文件锁,那么问题就解决了。
因此:如果问题是不受欢迎且侵入性的访问,请使用所有权和权限来阻止此操作。否则,请使用文件锁。
答案 1 :(得分:0)
用(f)stat()检查FIFO的链接计数。如果它超过你决定的某个限制,那么让阅读程序拒绝打开它吗?