LINUX.ORG.RU

Ответ на: комментарий от power

А как проверить, что помогло? :)

legolegs ★★★★★
() автор топика

Буферизация stdout это фича glibc'а. Отключить можно в программе с помощью setbuf

Reset ★★★★★
()

конкретнее что именно нужно.

для некоторых применений отключить буферизацию можно

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

скажем, если написать в шелл скрипте:

echo «do not buffer me» | cat

то строка не будет буферизирована (потому что ее выводит на stdout yне шелл, а cat, а он завершается и значит делает flush).

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

Конкретнее, я запускаю через cgi вот такой скрипт:

#!/bin/bash

echo -e "Content-Type: text/html\n"
if ! [ $QUERY_STRING ]; then
  echo "Usage: $0 <filename>"
  exit
fi
echo -e "<pre>"
tail -F -n0 $QUERY_STRING

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

во первых, шелл тут абсолютно ни при чем.

Можно было бы подумать, что tail буферизирует stdout, но в гугл утверждает что tail -f/-F флашит буфер.

Значит, stdout тут вообще не при чем. Имхо буферизует читатель этого скрипта.

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

А, ну да. Это я не ту версию скопипастил. Сути не меняет. Но это не вебдев, это локальная тулза с впечатляющей секурностью :)

legolegs ★★★★★
() автор топика
Ответ на: комментарий от dilmah

>Значит, stdout тут вообще не при чем. Имхо буферизует читатель этого скрипта.

Видимо. Не модифицируя читателя это нельзя исправить?

legolegs ★★★★★
() автор топика
Ответ на: комментарий от LamerOk

по идее там должно быть \r\n, причём \r\n\r\n ибо волшебство

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