Как отключить буферизацию stdout в C
Я хочу отключить буферизацию для stdout для получения точного результата для следующего кода
while(1) { printf("."); sleep(1); }
Код printf связки ‘.’ только при заполнении буфера.
- Ошибка с плавающей запятой в представлении?
- хранение денежных сумм в mysql
- Что значит ? в С означает?
- Как преобразование float / double в int обрабатывается в printf?
- Программа для конверсии Фаренгейта в цель
Используйте fflush(stdout)
. Вы можете вызвать его после каждого printf
чтобы заставить буфер сбросить флажок.
Вы можете использовать функцию setvbuf :
setvbuf(stdout, NULL, _IONBF, 0);
Вы также можете использовать setbuf
setbuf(stdout, NULL);
Это позаботится обо всем
Используйте fflush (stream FILE *) с помощью stdout в качестве параметра.
Ты можешь сделать
write(1, ".", 1);
вместо
printf(".");