Как сохранить tty без буфера? - PullRequest
2 голосов
/ 01 июня 2011

У меня проблемы с буферами:

У меня есть демон D, и его монитор M. D запускается раньше, чем M, и M печатает любую соответствующую информацию в tty, и мне нужно проанализировать этоинформацию и передать ее моей собственной программе.

Так как я хочу автоматизировать это, M должен распечатать в файл.Но этого не происходит, пока демон не будет убит из-за буферов.

Так что я думал о записи tty и поэтому попытался использовать скрипт для записи вывода на терминал, но ... он также буферизован...

Я также пытался получить доступ к gnu coreutils (чтобы использовать stdbuf, который мне, по-видимому, нужен), но мне пришлось отказаться, когда я не смог установить утилиту для распаковки предложенного своеобразного формата .xz.на сайте GNU!

Боюсь, я даже не правильно делаю!Разве нет простого решения этой проблемы, которое потенциально каждый, кто работает в режиме реального времени, получил?

Небольшая помощь будет высоко ценится.Спасибо.

1 Ответ

1 голос
/ 01 июня 2011
  1. формат файла .xz может быть извлечен с помощью xz или 7zip
  2. , похоже, существует хак LD_PRELOAD для достижениятоже результат тот же: http://lists.gnu.org/archive/html/bug-coreutils/2008-11/msg00164.html

Эта страница является моей предпочтительной ссылкой на буферизацию stdio: http://www.pixelbeat.org/programming/stdio_buffering/

PS.«все, кто работает в режиме реального времени», предположительно, используют IPC и не полагаются на bash.Perl, python и, очевидно, все низкоуровневые языки предоставляют способы явного отключения / включения буферизации

...