[PLUG] Weird Output of a C program in Linux

Ashutosh Adkar ashu.adkar at gmail.com
Tue Jul 17 02:58:00 PDT 2007


int main ()
{
 printf ("Hello World!");
 if (fork == 0)
     printf ("I'm the child!\n");
 else
     printf ("I'm the parent!\n");
}

The output of the above program is :

Hello World!I'm the child!
Hello World!I'm the parent!


Why is "Hello World" being printed twice?
Only the parent should print it right?

If "Hello World" is appended with a "\n" the output is...

Hello World!I'm the child!
I'm the parent!

Hello World is printed only once.Can anybody please explain whats goin on?
My guess is this because the stdout isnt flushed before the child is created.
Please help.
Thanks a lot.




-- 
Regards,
Ashutosh Adkar



More information about the plug-mail mailing list