Как отключить буферизацию stdout в C

Я хочу отключить буферизацию для stdout для получения точного результата для следующего кода

while(1) { printf("."); sleep(1); } 

Код printf связки ‘.’ только при заполнении буфера.

Используйте fflush(stdout) . Вы можете вызвать его после каждого printf чтобы заставить буфер сбросить флажок.

Вы можете использовать функцию setvbuf :

 setvbuf(stdout, NULL, _IONBF, 0); 

Вы также можете использовать setbuf

 setbuf(stdout, NULL); 

Это позаботится обо всем

Используйте fflush (stream FILE *) с помощью stdout в качестве параметра.

http://www.elook.org/programming/c/fflush.html

Ты можешь сделать

 write(1, ".", 1); 

вместо

 printf("."); 
  • Как работает getchar ()?
  • Можно ли использовать несколько (двух) постоянных хранилищ с одной объектной моделью, поддерживая отношения друг от друга?
  • Gcc автоматически инициализирует статические переменные до нуля?
  • Путаница вычитания указателя
  • Странное предупреждение компилятора C: предупреждение: «struct» объявлен в списке параметров
  • Поймать Ctrl-C в C
  • Как копировать вектор в c?
  • Как получить длину функции в байтах?
  • используя rand для генерации случайных чисел
  • Объявление функции C для возврата массива
  • Несколько символов в символьной константе
  • Interesting Posts
    Давайте будем гением компьютера.