Есть ли гарантия автоматической очистки stdout перед выходом? Как это работает?
Вот код (действительный C и C ++)
#include <stdio.h>
int main() {
printf("asfd");
// LINE 1
return 0;
}
Если в строке 1 я добавлю выражение segfaulting, программа просто рухнет, ничего не печатая (как и ожидалось).
Но почему вышеприведенный код печатает «asdf» и не завершается без очистки буфера? Что находится под капотом и почему работает как положено?