1. 使用fork函数创建一个进程
pid t fark(void);
fork函数调用成功,返回两次,返回值为0,代表当前进程是子进程,返回值非负数,代表当前进程为父进程,调用失败,返回-1
2.fork函数创建一个子进程的一般目的
(1)一个父进程希望复制自己,使父、子进程同时执行不同的代码段。这在网络服务进程中是常见的—父进程等待客户端的服务请求。当这种请求到达时,父进程调用fork,使子进程处理此请求。父程则继续等待下一个服务请求到达。
(2)一个进程要执行一个不同的程序。这对shell是常见的情况。在这种情况下,子进程从fork返回后立即调用exec。
#include<stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
pid_t pid;
int data = 10;
while(1){
printf("please input a data\n");
scanf("%d",&data);
if(pid == 1){
pid = fork();
if(pid > 0){
}else if(pid == 0){
while(1){
printf("do net request,pid = %d\n",getpid());
sleep(3);
}
}
}else{
printf("wait,do nothing\n");
}
}
return 0;
}
3.