为啥 mkfifo'ed 管道仅在 ~25 秒后更新?

Posted

技术标签:

【中文标题】为啥 mkfifo\'ed 管道仅在 ~25 秒后更新?【英文标题】:Why mkfifo'ed pipe only updates after ~25 seconds?为什么 mkfifo'ed 管道仅在 ~25 秒后更新? 【发布时间】:2015-12-07 13:20:15 【问题描述】:

我有一个程序使用printf() 每 3 秒写入 mkfifo 创建设备 7 行文本数据。我正在尝试在另一个终端窗口中使用cat /path/to/device 阅读它。但不是每 3 秒更新一次,而是每 25 秒打印一次。为什么?如何让它更新更快? (Ubuntu Wily)

【问题讨论】:

您是否在与其他 shell 脚本一起使用并发? 【参考方案1】:

管道的一端或两端缓冲超出您的要求。在你的写作程序中,当你写完你的 7 行代码时,fflush,然后用cat -u 读取输出(如果你的cat 不是 GNU cat)。

【讨论】:

以上是关于为啥 mkfifo'ed 管道仅在 ~25 秒后更新?的主要内容,如果未能解决你的问题,请参考以下文章

视图更改仅在 60 秒后反映在 Laravel 中

AsyncTask(update) 仅在应用程序第一次打开时有效,但在 5 秒后不更新

对远程 WebDriver 服务器的 HTTP 请求在 60 秒后超时。仅在通过任务调度程序运行时发生

为啥我应该在 Angular 订阅中使用 select 和管道?

为啥管道在 Azure 数据工厂中永远停留在排队状态?

为啥我的大型 JSF 数据表不是仅在 IE 中填充?