Estado antes de fork () imprimiendo dos veces [duplicado]
Esta pregunta ya tiene una respuesta aquí:
printf anomalía después de "fork ()" 3 respuestas Estaba experimentando confork()
y redireccionar para verificar si las redirecciones realizadas en el padre también se aplican al hijo. Escribí el siguiente programa simple
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
int main ()
{
freopen( "error.txt", "w+t", stdout ); // From now on, stdout = error.txt
printf (" ERROR! WHY DONT U UNDERSTAND?\n");
if ( fork() == 0 )
{
printf(" I AM CHILD\n");
exit(0);
}
else-
{
printf (" EITHER I AM A PARENT OR SOMETHING GOT SCREWED\n");
}
return 0;
}
La salida (error.txt
) Tengo es
ERROR! WHY DONT U UNDERSTAND?
EITHER I AM A PARENT OR SOMETHING GOT SCREWED
ERROR! WHY DONT U UNDERSTAND?
I AM CHILD
Sorprendentemente,ERROR! WHY DONT U UNDERSTAND?
esimprimir dos veces a pesar de que aparece mucho antes de lafork()
se llama y solo debe imprimirlo una vez el padre.
¿Alguien puede arrojar algo de luz sobre esto