为啥 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 秒后更新?的主要内容,如果未能解决你的问题,请参考以下文章
AsyncTask(update) 仅在应用程序第一次打开时有效,但在 5 秒后不更新
对远程 WebDriver 服务器的 HTTP 请求在 60 秒后超时。仅在通过任务调度程序运行时发生