Gibt es eine Garantie für stdout Auto-Flush vor dem Verlassen? Wie funktioniert es?

Hier ist der Code (gültiges C und C ++)

#include <stdio.h>

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

Wenn ich in Zeile 1 den Ausdruck segfaulting setze, stürzt das Programm ab, ohne etwas zu drucken (wie erwartet).

Aber warum druckt der obige Code "asdf" und wird nicht beendet, ohne dass der Puffer geleert wird? Was steckt unter der Haube und warum funktioniert es wie erwartet?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage