码迷,mamicode.com
首页 > 其他好文 > 详细

APUE之初识fork()

时间:2016-04-07 18:30:16      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

    fork()函数可以让进程拷贝出一个几乎与其一模一样的子进程出来,fork函数调用一次却会返回两次:

一次在父进程,一次在子进程。它的返回值取决于当前进程,如果是子进程则返回0,父进程则返回子进程PID。

一般来说父子进程有如下特点:

1 父进程与子进程是并发执行;

2 相同但是相对独立的地址空间;

3 共享文件IO。

一段简单的代码如下所示:

 1 #include<unistd.h>
 2 #include<stdio.h>
 3 
 4 int main()
 5 {
 6     // int i=0;
 7     pid_t fpid;
 8     fpid=fork();
 9     if(fpid<0)
10     {
11          printf("error in fork()\n");    
12     }
13         else if(fpid==0)
14     {
15      printf("pid==%d\n",getpid());
16      printf("fpid=0\n");
17     }
18     else if(fpid>0)
19     {
20                  
21      printf("pid==%d\n",getpid());
22      printf("fpid!=0\n");
23     }
24 
25       return 0;
26 }

编译执行后结果:

1 $:~/sb/codetest$ ./a.out
2 fpid=7262
3 pid==7261
4 fpid!=0

5 fpid=0 6 pid==7262 7 fpid=0

 

 

 

 

 


APUE之初识fork()

标签:

原文地址:http://www.cnblogs.com/filmskin/p/5364719.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!