1
18
我认为,当输出为
不是终点站
(tty)。我不确定这是否适用于你的案子,但试着通过
但我不知道这是不是你想要的。 |
2
6
首先,输出重定向是从右向左解析的,所以
不等于
后者将stderr重定向到stdout,然后stdout(包括stderr)重定向到文件。前者将stdout重定向到文件,然后在stdout上显示stderr。
至于管道
|
3
1
鉴于FIFO被称为“a”的实验,我认为问题在于zenity处理其输入的方式。如果你从键盘输入zenity会发生什么?(怀疑:它的行为符合您的要求,读取到EOF。)但是,zenity可能使用常规阻塞I/O处理终端输入(tty输入),但对所有其他设备类型使用非阻塞I/O。对于来自文件的输入,无阻塞I/O是很好的;对于来自管道或FIFO等的输入,则不太理想。如果它确实使用了无阻塞I/O,zenity将获得第一行输出,然后退出循环,认为它已完成,因为它的第二次读取尝试将指示没有其他立即可用的内容。 证明这是正在发生(或没有发生)的事情是很棘手的。我会寻找“truss”或“strace”或其他系统调用监视器来跟踪zenity正在做什么。
|
Frank · 使用NamedPipe块读取文件,尽管使用重叠 7 年前 |
Benjamin.E · 从命名管道连续读取 7 年前 |
Ashish K · 命名管道卡在打开位置 7 年前 |
Albatross · 使用Java从命名管道连续读取 7 年前 |
wjimenez5271 · 命名管道的作者什么时候开始工作? 10 年前 |
bairog · 多个管道服务器实例的异步NamedPipes 10 年前 |