码迷,mamicode.com
首页 > 系统相关 > 详细

Linux进程之Fork函数

时间:2015-04-11 06:30:18      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

Fork()函数

1.所需头文件:

#include <unistd.h>

#include<sys/types.h>

2.函数定义

pid_t fork( void );

pid_t 是一个宏定义,其实质是int 被定义在#include<sys/types.h>中

返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;

        否则,出错返回-1

3.函数说明:

 一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(child process)。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。

子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。父子进程间共享的存储空间只有代码段。

 

 4.代码

 

  1. #include<sys/types.h> 
  2. #include<unistd.h> 
  3. #include<stdio.h> 
  4. #include<stdlib.h> 
  5. #include<errno.h> 
  6.  
  7. int main() 
  8. { 
  9.    
  10.   pid_t pid;/*pid 进程id号*/ 
  11.    
  12.   pid=fork();/*创建一个新进程*/ 
  13.  
  14.   if(pid==0) /*返回0为子进程*/ 
  15.   { 
  16.    printf("Return pid is %d\n",pid); 
  17.    printf("This is son process!  pid is:%d\n",getpid()); 
  18.       
  19.   } 
  20.   else if(pid>0)/*返回大于0为父进程*/ 
  21.   { 
  22.     printf("Return pid is %d\n",pid); 
  23.     printf("This is parent process!  pid is:%d\n",getpid()); 
  24.      waitpid(pid,NULL,0);/*等待子进程退出*/
  25.   } 
  26.   else 
  27.   { 
  28.      perror("fork() error!"); 
  29.      exit; 
  30.   } 
  31. } 

 5.输出

技术分享

Linux进程之Fork函数

标签:

原文地址:http://www.cnblogs.com/jiu0821/p/4416095.html

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