Подтвердить что ты не робот

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

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

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

Буква кода printf '.' только при заполнении буфера.

4b9b3361

Ответ 1

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

Ответ 2

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

setvbuf(stdout, NULL, _IONBF, 0);

Ссылка выше была сломана. Вот еще одна ссылка на функцию.

Ответ 3

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

setbuf(stdout, NULL);

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

Ответ 5

Вы можете сделать это:

write(1, ".", 1);

вместо этого:

printf(".");