I experimented with fork()
and redirected to check if the repeated instructions made by the parent apply to the child. I wrote the following simple program
#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; }
The output ( error.txt
) I received is
ERROR! WHY DONT U UNDERSTAND? EITHER I AM A PARENT OR SOMETHING GOT SCREWED ERROR! WHY DONT U UNDERSTAND? I AM CHILD
Surprisingly, ERROR! WHY DONT U UNDERSTAND?
ERROR! WHY DONT U UNDERSTAND?
prints twice , even if it appears much earlier than fork()
is called and should be printed only once by the parent.
Can anyone shed some light on this?
source share