Я пишу программу на C для анализа пакетов, перехваченных tcpdump. В моей программе я использую popen
, чтобы открыть канал для процесса tcpdump, который захватывает пакеты и выгружает необработанные данные в стандартный вывод, как показано ниже.
FILE *tcpdump = popen("tcpdump -s0 -w -", "r");
Однако предупреждения и сообщения об ошибках от tcpdump направляются прямо в stderr, который отображается в консоли. Я хотел бы как-то скрыть их, чтобы отображался только вывод из моей программы.
Один из способов, которым я пытался, это добавить 2>&1
к команде tcpdump, но тогда моей программе пришлось бы различать предупреждения / ошибки tcpdump и необработанные данные пакета.
Есть ли простой способ отключить вывод stderr из tcpdump?