¿Existe una garantía de stdout auto-flush antes de salir? ¿Como funciona?
Aquí está el código (válido C y C ++)
#include <stdio.h>
int main() {
printf("asfd");
// LINE 1
return 0;
}
Si en la línea 1 pongo la expresión de seguridad, el programa simplemente se bloquearía sin imprimir nada (como se esperaba).
Pero, ¿por qué el código anterior se imprime "asdf" y no sale sin que se vacíe el búfer? ¿Qué hay debajo del capó y por qué funciona como se espera?