LINUX.ORG.RU

читать её stodut/stderr

anonymous ()

Перенаправляешь выхлоп на свою программу. При получении новой строки печатешь саму строку + время.

observer ★★★ ()

просто через чтение скорее всего никак. Буфферизация и т.п. съест сам х. Только разве что strace'ом смотреть когда она делает соответствующие системные вызовы, или через LD_PRELOAD подменять библиотечные ф-ии и смотреть прямо там.

mashina ★★★★★ ()
Ответ на: комментарий от AlexCones

Скорее будет, как говорит mashina: буфферизация съест сам х если он ничтожно мал.

observer ★★★ ()
Ответ на: комментарий от AlexCones

См. выше, что пишет mashina. Он умный.

Deleted ()

Запускай из своей программы по методу fork-exec, предварительно обрубив буферизацию для ввода-вывода. Хотя, есть ещё буферизация на уровне библиотек (скажем, в с++). И с ней как бороться не знаю. Разве что собрать отдельную версию libstdc++ с вырубленной буферизацией и через LD_PRELOAD.

С другой стороны, если буферизация на уровне библиотеки используется, то задержка между выводом двух out'ов скорее всего объясняется инертностью терминала =)

ssvda ()

tee with timestamps: http://linux.softpedia.com/get/Utilities/super-tee-26301.shtml

Ну или свой костыль напиши.

Но на счёт миллисекундой точности я не уверен. Может правда strace юзать, он умеет логгировать события на определённых дескрипторах (тебе stdout и stderr нужны). Или systemtap...

true_admin ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.