Как отключить буферизацию stdout в C Я хочу отключить буферизацию для stdout для получения точного результата для следующего кода while(1) { printf("."); sleep(1); } Буква кода printf '.' только при заполнении буфера. Ответ 1 Используйте fflush(stdout). Вы можете использовать его после каждого вызова printf, чтобы заставить буфер очищаться. Ответ 2 Вы можете использовать функцию setvbuf: setvbuf(stdout, NULL, _IONBF, 0); Ссылка выше была сломана. Вот еще одна ссылка на функцию. POSIX С /C++ Ответ 3 Вы также можете использовать setbuf setbuf(stdout, NULL); Это позаботится обо всем Ответ 4 Используйте fflush(FILE *stream) с stdout в качестве параметра. http://www.elook.org/programming/c/fflush.html Ответ 5 Вы можете сделать это: write(1, ".", 1); вместо этого: printf(".");
Ответ 1 Используйте fflush(stdout). Вы можете использовать его после каждого вызова printf, чтобы заставить буфер очищаться.
Ответ 2 Вы можете использовать функцию setvbuf: setvbuf(stdout, NULL, _IONBF, 0); Ссылка выше была сломана. Вот еще одна ссылка на функцию. POSIX С /C++
Ответ 4 Используйте fflush(FILE *stream) с stdout в качестве параметра. http://www.elook.org/programming/c/fflush.html