Linux.com

about fork()

Link to this post 20 Nov 09

i am learning the kernel,the fork() ,i have some questions,and read some from the net,but not very know about it
the source:

#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>

void main()
{
int i;
int p_id;
printf("aaa");
p_id=fork();
if(p_id==0)
{
for(i=1;i<3;i++)
{ printf("this is child process\n"); }
}
if(p_id==-1)
{
printf("fork new process error!\n");
}
if(p_id==0)
{
printf("iii");
for(i=1;i<3;i++)
{ printf("this is parent process\n" ); }
}
printf("bbb");
}

yanj@yanj-desktop:~/lianxi/chapter2$ ./forktest
aaathis is child process
this is child process
iiithis is parent process
this is parent process


I know fork() copy the two same program to child,parent process,
why can show "aaa",cannot "bbb"

Link to this post 22 Nov 09

I dunno help you with your problem but learn to use the BB codes. The code you put into bb code, then it would be readable, dude.

Link to this post 22 Nov 09

You have two blocks that are testing for a child process and none that check for parent process. Try this:


if(p_id==0)
{
for(i=1;i<3;i++)
{ printf("this is child process\\n"); }
}
else if(p_id==-1)
{
printf("fork new process error!\\n")
}
else
{
for(i=1;i<3;i++)
{ printf("this is parent process\\n" ); }
}

Cute! The code processor strips out the backslashes in the code example! Let's try doubling them to see if they display correctly...
Ok, that works. Note to forum moderator(s) - the code block processor is incorrectly stripping out new-line (backslash-n) in C code. Not good.

Who we are ?

The Linux Foundation is a non-profit consortium dedicated to the growth of Linux.

More About the foundation...

Frequent Questions

Join / Linux Training / Board