【发布时间】:2021-06-05 05:42:27
【问题描述】:
如果我在 Terminal1 上打开一个 nc 监听
nc -l 35555
并以这种方式在Terminal2上进行连接
mkfifo /tmp/f
cat /tmp/f | nc 127.0.0.1 35555 > /tmp/f
现在我有几个问题
在 Terminal2 上,您可以看到正在等待的东西。那是什么?
- 是cat进程还是nc进程?
- 它们按什么顺序执行?
如果我在 Terminal1 上写一个字符串,那个字符串就会回来。
- 为什么
cat /tmp/f | nc 127.0.0.1 35555 > /tmp/f不创建循环?
接收到的字符串从nc出来,进入/tmp/f。由于 cat 字符串开始输入 nc,发送回 Terminal1 并在 /tmp/f 等中再次发送。
- 为什么 fifo 的猫不是阻塞操作?从技术上讲它并没有结束,那么为什么要执行 nc?
谢谢。
【问题讨论】:
标签: linux bash operating-system pipe