Как я могу отслеживать трафик, проходящий через канал? - PullRequest
0 голосов
/ 17 марта 2009

Ситуация, с которой я столкнулся, такова: я перенаправляю ввод из одной точки моей программы в другую через канал. Однако не похоже, что это работает правильно, поэтому я бы хотел следить за тем, что происходит через канал.

В настоящее время я использую dup2 (), чтобы просто перезаписать stdin и stdout из канала.

Как я могу отслеживать, что происходит между трубами?

Ответы [ 3 ]

4 голосов
/ 18 марта 2009

Когда я отлаживаю канал в скрипте bash, я часто использую команду tee , чтобы захватить то, что происходит через него, не прерывая поток.

Существует соответствующий системный вызов , который выглядит так, как будто он может быть полезен для отладки каналов в C-коде, но я никогда не пробовал.

1 голос
/ 18 марта 2009

Вас также может заинтересовать инструмент pv ( справочная страница , обзор ):

"pv - Pipe Viewer - это инструмент на основе терминала для мониторинга прохождения данных через конвейер. Он может быть вставлен в любой нормальный конвейер между двумя процессами, чтобы наглядно показать, как быстро проходят данные, как сколько времени прошло, как близко к завершению и какова оценка того, сколько времени пройдет до завершения ».

1 голос
/ 18 марта 2009

Полезным инструментом является Pipe Viewer . Я не думаю, что это имеет прямое применение при просмотре реальных данных, проходящих через ваш канал, но позволит вам отслеживать прогресс и пропускную способность. Я думаю, что timday ответ, однако, больше, чем вы ищете.

...