Следующий код:
int z = 0;
while(z < 4)
{
printf("iteration %d\n",z);
sleep(1);
z++;
}
Работает нормально, и буфер stdout сбрасывается каждую секунду при запуске программы из командной строки.Однако, когда я пытаюсь получить доступ к программе в веб-браузере (server - apache в linux, скомпилированный исполняемый файл (с gcc), обрабатываемый через cgi), содержимое отображается только через 4 секунды, а не «шаг за шагом».Я ищу что-то вроде PHP ob_flush()
. И, кстати, cgi - лучший способ обработки скомпилированных исполняемых файлов C?
Обновление: , ни fflush(stdout)
, ни setvbuf(stdout, NULL, _IONBF, 0)
не работает!!! Отлично работает после отключения mod_deflate
.