一、fork()函数的作用
开辟出一块内存空间
二、父进程与子进程
被复制的进程是父进程,复制出来的进程叫子进程
三、注意事项
1.父进程的进程号一定小于子进程(因为肯定先有了父进程,才会有子进程)
2.父进程调用fork()函数的返回值是子进程号
3.子进程调用fork()函数的返回值是0
4.由2,3,可以通过函数返回值来区分是父进程还是子进程
四、实验
要求:编写一段程序,使用系统调用fork( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一句话,观察记录屏幕上的显示结果。
#include <stdio.h>
main()
{
int p1,p2;
p1 = fork();
if(p1 == 0)
{
printf( "This is child process 1! pid is %d:\n", getpid());
}
else if(p1 > 0)
{
printf( "This is parent process! pid is %d:\n", getpid());
p2 = fork();
if(p2 == 0)
{
printf( "This is child process 2! pid is %d:\n", getpid());
}
else if(p2 > 0)
{
printf( "This is parent process! pid is %d:\n", getpid());
}
else
{
printf("fork()error!\n");
}
}
else
{
printf("fork()error!\n");
}
}
结果如下: