首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用管道吗?

利用管道吗?
EN

Stack Overflow用户
提问于 2015-08-02 01:50:03
回答 1查看 127关注 0票数 3

如果有人知道一个类似fstat的系统调用可以实现这一点,我很想听听它。。

我正在开发一些通过命名管道进行通信的应用程序(出于遗留原因,这是必需的)。管道具有固定的容量(65536字节是Linux默认的),当管道满时,阻塞写入,直到有足够的空间可用为止。这意味着较慢的消费者将阻止更快的生产者。我想要做的是定期监测管道的使用情况。

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-02 02:07:48

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31767892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档