我一直很想让它工作一段时间,所以我怀疑对管道如何工作的某种根本误解是造成麻烦的根本原因。
我的目标是通过netcat
文件系统上的某个远程主机启动TCP连接,并在文件系统上有两个命名管道:一个可以读取进程以获取传入数据,另一个可以写入进程作为传出数据。我目前正在使用以下构造:
mkfifo in
mkfifo out
cat out | netcat foo.bar.org 4000 > in &
从这里开始,我想允许其他进程对该开放的TCP连接进行读写。这应该“起作用”,还是有这样的构造不能起作用的原因?
什么似乎目前发生的是,我可以读取out
没有问题,但是当我写到in
我得到的输出提一个破碎的管道和所有后续通信似乎是死了。有什么想法吗?
(相关:我最初使用:
netcat foo.bar.org 4000 < out > in &
但发现它阻止了等待输入。我对此也很好奇,但最好在一个单独的问题中解决。)
write(stdout): Broken pipe
在写入out
管道后(或之后不久)仍然收到。