父进程创建子进程的目的:简单来说:给特定的输入,给出特定的输出
父进程希望复制自己,使父、子进程同时执行不同的代码段。这在网络服务进程中是常见的——父进程等待客户端的服务请求。当请求到达,父进程调用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;
}
结果: