我对 tcpdump 的行为感到非常惊讶。我写了简单的代码来做回声,比如:
而 (n)
{
n = fread(buf, 16, 1, 标准输入);
printf("%s", buf);
fflush(标准输出);
}
然后我做类似的事情
$ tcpdump | ./EchoTest
我在回显输出中得到了很多 tcpdump 数据包,直到其中一些数据包被抑制。为什么会发生??像
$ 猫文件 | ./EchoTest
或者
$ 尾 -f 文件 | ./EchoTest
(带有“$ echo "blabla" >> 文件)
完美运行,我立即得到输出。有人知道如何强制 tcpdump 在管道中输出它吗?