Я не понимаю, почему иногда мне нужно использовать fflush (), а иногда нет.
Иногда буферы stdio
сбрасываются, а иногда нет.Например, простое включение «\ n» в печатный материал обычно сбрасывает его (поскольку stdout
по умолчанию буферизуется при подключении к терминалу).
Когда программа выполняет ошибки,stdout не очищает свой буфер автоматически?
Буферы Stdio очищаются exit
.Когда сигнал (такой как SIGSEGV
) убивает процесс, exit
не называется .Другой способ выйти из процесса без очистки буферов stdio
- использовать специфичный для Unix вызов _exit
.