我有一个写入命名管道和另一个从管道读取的脚本。偶尔,在启动脚本时,我注意到管道的内容是从前面的脚本运行中存在的。有没有办法在脚本的开头刷新管道?如何使用bash冲刷管道
7
A
回答
5
我觉得dd
是你的朋友:
dd if=myfifo iflag=nonblock of=/dev/null
strace的显示
open("myfifo", O_RDONLY|O_NONBLOCK)
,事实上甚至没有一个空的FIFO存储块。 “设置当管道可防止堵塞打开FD读/写,而不是只读”。
:
1
您可以从管道读取,直到它为空。这将有效地冲洗它。
在你尝试这个大胆的壮举之前,请拨fcntl(mypipe, F_SETFL, O_NONBLOCK)
(我不知道shell脚本等价物)在管道是空的时候进行读取而不是挂起你的程序。
1
相关问题
- 1. bash中的缓冲管道
- 2. Python bash管道
- 3. 在bash函数中使用管道
- 4. 在bash shell中如何实现管道?
- 5. 如何管道输入到Java程序使用bash
- 6. 如何在bash中使用条件管道过滤器?
- 7. 解释最后冲刺在bash /管道表达
- 8. bash脚本和管道
- 9. 管道到Bash在C
- 10. Bash管道和Shell扩展
- 11. bash的管道与SIGTERM
- 12. bash + c管道参数
- 13. 冲洗管道的缓冲区
- 14. Python - 如何用管道调用bash命令?
- 15. 在使用zenity的bash脚本中 - 进度条从管道读取,如何安全地杀死管道进程?
- 16. 如何使rsyslogd刷新其缓冲区
- 17. 使用管道
- 18. Django频道:如何刷新发送缓冲区
- 19. 在bash中命名管道比普通管道更快吗?
- 20. 如何循环管道线并在bash中使用线作为变量?
- 21. 如何使用管道工[R
- 22. 如何在linux中使用管道?
- 23. 如何使用CI/CD管道
- 24. 如何使用猫在管道
- 25. 如何使用Ionic2的翻译管道?
- 26. 如何使用scrapy-redis管道?
- 27. 如何在Jenkins管道中使用SSH?
- 28. 如何在shell管道中使用`jq`?
- 29. 如何使用管道|在邮差params
困惑,这不是bash的是什么呢? – 2017-07-08 03:46:04
不是使用bash-builtin命令/功能,而是使用标准unix工具的shell脚本解决方案。 – mvds 2017-07-08 04:47:35