我正在用 C 编写一个程序来分析 tcpdump 捕获的数据包。在我的程序中,我popen
用来打开一个 tcpdump 进程的管道,该进程捕获数据包并将原始数据转储到标准输出,如下所示。
FILE *tcpdump = popen("tcpdump -s0 -w -", "r");
但是,来自 tcpdump 的警告和错误消息会直接发送到 stderr,它会显示在控制台中。我想以某种方式隐藏这些,所以只显示我的程序的输出。
我尝试的一种方法是附加2>&1
到 tcpdump 命令,但是我的程序必须区分 tcpdump 警告/错误和原始数据包数据。
有没有一种简单的方法可以使 tcpdump 的 stderr 输出静音?