手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

Linux进程之Fork函数

[日期:2015-04-16] 来源:Linux社区  作者:Linux [字体: ]

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.}

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-04/116280.htm

linux
相关资讯       Linux函数  fork函数 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款