Есть ли гарантия автоматической очистки stdout перед выходом? Как это работает?

Вот код (действительный C и C ++)

#include <stdio.h>

int main() {
    printf("asfd");
    // LINE 1
    return 0;
}

Если в строке 1 я добавлю выражение segfaulting, программа просто рухнет, ничего не печатая (как и ожидалось).

Но почему вышеприведенный код печатает «asdf» и не завершается без очистки буфера? Что находится под капотом и почему работает как положено?

Ответы на вопрос(3)

Ваш ответ на вопрос