_13_进程

=================================================================

 

创建单个子进程  摘自: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

=

猜你喜欢

转载自www.cnblogs.com/huangtiandi/p/9166530.html