linux FIFO块读取

时间:2018-04-16 01:52:10

标签: linux fifo netcat mkfifo

我在https://exploit-exercises.com/protostar/上做运动net0。练习的内容是将请求的数字作为一个小端32位int发送到服务器。我想出了以下命令行。

mkfifo /tmp/pipe  
cat /tmp/pipe | netcat 127.0.0.1 2999 |tee -a /tmp/log | cut -d ' ' -f 3 | xargs -I{} python -c "import struct; print struct.pack('I',int({}))" > /tmp/pipe

第二个命令行没有完成,我在使用cat /tmp/pipe进行调试时发现strace阻塞读取(未打开)。

1 个答案:

答案 0 :(得分:1)

我找到了原因。当输出不是终端时,cut将缓冲输出。 python print也需要刷新。 https://unix.stackexchange.com/a/226675/194577