=================================================================
创建单个子进程 摘自:https://blog.csdn.net/jason314/article/details/5640969
=================================================================
fork函数
#include<unistd.h>
pid_t fork(void)
描述: 创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,
两个进程也可以做不同的事
在语句fpid=fork()之前,只有一个进程在执行这段代码,但在这条语句之后,就变成两个进程在执行了,这两个进程的
几乎完全相同,将要执行的下一条语句都是if(fpid<0),系统把进程的当前已运行的状态整个拷贝了一遍
fork调用仅仅被调用一次,却能够返回两次,子进程和父进程分别返回,它可能有三种不同的返回值:
1 在父进程中,fork返回新创建子进程的进程ID;
2 在子进程中,fork返回0,代表进程创建成果;
3 如果出现错误,fork返回一个负值;
1 #include <unistd.h> 2 #include <stdio.h> 3 int main () 4 { 5 pid_t fpid; //fpid表示fork函数返回的值 6 int count=0; 7 fpid=fork(); 8 if (fpid < 0) 9 printf("error in fork!"); 10 else if (fpid == 0) { 11 printf("i am the child process, my process id is %d/n",getpid()); 12 printf("我是爹的儿子/n");//对某些人来说中文看着更直白。 13 count++; 14 } 15 else { 16 printf("i am the parent process, my process id is %d/n",getpid()); 17 printf("我是孩子他爹/n"); 18 count++; 19 } 20 printf("统计结果是: %d/n",count); 21 return 0; 22 }
运行结果是:
i am the child process, my process id is 5574 我是爹的儿子 统计结果是: 1 i am the parent process, my process id is 5573 我是孩子他爹 统计结果是: 1
=