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.