LINUX.ORG.RU

Как отследить вывод на stdout?


0

0
Положим есть некая программа ls, выводящая на stdout текст с содержимым текущего катклога(или любая другая программа выводящая сообщения на stdout - lame, wget, ps.....). Требуется прграмма отслеживающая, допустим, для ls - выводит ли она, например,

test work usr

если да, то мы что-то делаем, нет - тоже что-то делаем(неважно). Для lame или wget нужно отследить выполненные проценты...

Подскажите плз как это осущесвить??

if ls lame &>/dev/null ; then echo "lame is here"; fi
grustnoe ★★
()
ls | grep 'test work usr' | other_prg
Пользутесь грепом пайпами и проверка выполнения по test

anonymous
()
Ответ на: комментарий от anonymous
Нет вы меня плохо поняли(возможно я не корректно задал вопрос): нужно написать ПРОГУ(желательно сишную).
IPFreely ★★
() автор топика
Ответ на: комментарий от IPFreely
1) Создаешь Pipe 2) Fork 3) В сыне закрываешь дискриптор на чтение от pipe, дублируешь дискриптор на запись от pipe на дискриптов с номером 1 (stdout) и если хочешь с номером 2 (stderr), делаешь exec() для ls 4) В отце закрываешь дискриптор на запись от pipe, читаешь из pipe. Система заблокирует процесс, до тех пор пока в pipe не появится информация
anonymous
()
Ответ на: комментарий от sS
Мне системные вызовы ближе чем функции.
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.