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