gpt4 book ai didi

c - 获取管道利用率?

转载 作者:太空狗 更新时间:2023-10-29 11:18:25 26 4
gpt4 key购买 nike

这被标记为已回答,但如果有人知道可以实现此目的的类似 fstat 的系统调用,我很想听听。

我正在开发一些通过命名管道进行通信的应用程序(由于遗留原因而需要)。管 Prop 有固定容量(Linux 默认为 65536 字节),当它变满时,将阻止写入,直到有足够的空间可用。这意味着较慢的消费者将阻止较快的生产者。我希望能够做的是定期监控管道的利用率。

是否可以获取管道的数据大小(尚未从管道中读取的数据大小)? fstat 总是为大小返回 0,根据手册页的预期行为。

是否有一种符合 posix 标准的方法来获取管道容量?显然,从 Linux 2.6.35 开始,fcntl 就可以做到这一点。但是,这需要能够在早期版本的 Linux 上运行。

最佳答案

在一端或两端以非阻塞模式打开管道,并始终尝试读取或写入完整的管道缓冲区容量。 read/write 很可能会返回小于该值的值。

非阻塞 read 返回的是当时管道中有多少。非阻塞 write 返回的是管道中剩余的空间量。

关于c - 获取管道利用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31767892/

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