FIFO буферы в linux? приложение пишет (построчно) периодически в fifo ($ mkfifo fifo-file)
хочу с помощью tail -f забирать данные по мере поступления и работать с ними через пайпы
на деле данные сбрасываются кусками по 4096 байт.
почему так? что именно это за буфер? настраивается ли размер буфера? можно ли выключить буфер и таскать данные по мере фактической записи?
если отправите читать матчасть - то буду очень рад хорошим материалам в тему
заранее спасибо!

21 Авг 2019 в 06:53
153 +1
0
Ответы
1

FIFO (First In First Out) буферы в Linux работают по принципу передачи данных в порядке их поступления. Они могут использоваться для передачи данных между процессами, как в вашем случае, когда приложение пишет данные в FIFO, а другой процесс читает их оттуда.

При использовании tail -f для чтения данных из FIFO, данные будут считываться кусками (обычно по 4096 байт), потому что внутри ядра Linux используется буферизация для повышения производительности. Это помогает уменьшить количество обращений к диску и улучшить общую производительность системы.

Размер буфера в FIFO зависит от системных параметров и настроек ядра. Обычно он устанавливается в 4096 байт, но его можно изменить с помощью команды fcntl или через настройки ядра.

Чтобы таскать данные по мере фактической записи, можно использовать параметр -n в команде tail, чтобы устанавливать меньший размер буфера или даже его отключить. Например, tail -n 1 будет читать данные по одной строке.

Если вы хотите углубиться в тему, рекомендуется изучить документацию по FIFO в Linux, man-страницы для команд mkfifo, tail и fcntl, а также материалы о работе с процессами и передачей данных между ними в Linux.

20 Апр в 13:11
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 683 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир