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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.