c语言 - 如何限制先进先出的用户数量?



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

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

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

使用 (

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

最新更新