父进程创建子进程的目的:简单来说:给特定的输入,给出特定的输出
父进程希望复制自己,使父、子进程同时执行不同的代码段。这在网络服务进程中是常见的——父进程等待客户端的服务请求。当请求到达,父进程调用fork,使子进程处理此请求。父进程则继续等待下一个服务请求的到达。
服务器—fork—客户端1
—fork—客户端2
—fork—客户端3
……
代码:
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
int main()
{
pid_t pid;
int fd = 0;
int data = 0;
while(1){
printf("please input data,1 creats child process\n");
scanf("%d",&data);
if(data == 1){
fd = fork();
if(fd==0){
while(1)
{
printf("do net request,pid = %d\n",getpid());
sleep(2);
}
}
}
else
{
printf("do nothing wait please \n");
}
}
return 0;
}
结果: