'освободить буфер' или 'stdbuf' для удаления stdout буферизация?

Только из файлов на Вашем компьютере (принимающий недавнее ядро) можно спросить /sys/block/sda/stat или /proc/diskstats. Будет требоваться некоторый перевод, как бы то ни было. Но это хорошо для быстрой и грязной проверки.

13
24.10.2013, 02:02
1 ответ

Они работают совершенно другими способами.

Программа освобождает буфер, использование ожидает выполнять именованную команду. Поскольку ожидают, создает pseudo-tty для присоединения к stdout дочернего процесса, ребенок мог бы дурачиться, заставляя думать, что он должен использовать буферизацию строки вместо буферизации блока. Некоторые программы изменят свое поведение, когда isatty (stdout) будет верен, другие не будут и это быть очень твердыми знать, который будет и который не будет.

Программа stdbuf пытается поместить libstdbuf перед libc для динамично загруженных двоичных файлов. Где libstdbuf переопределяет стратегию буферизации значения по умолчанию libc stdio вызовы.

Я узнал это

 apt-get source expect coreutils

и чтение соответствующего источника для каждой программы.

14
27.01.2020, 19:53
  • 1
    Некоторый тревожный материал (из страницы справочника): unbuffer -p может казаться, работает неправильно, если питание процесса вводило для освобождения буфера выходов. Рассмотрите: process1 | unbuffer -p process2 | process3 Если process1 выходит, process2 еще не мог закончиться. Это невозможно для, освобождают буфер для знания долго для ожидания –  dan3 24.10.2013, 01:05
  • 2
    Кажется, что stdbuf может также управлять буферизацией stdin программ, которые используют потоки C, который кажется важным. Возможно, это должно быть включено в ответ в пользу будущих читателей. –  dan3 25.10.2013, 11:47

Теги

Похожие вопросы