六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 183|回复: 0

fork 创建子进程

[复制链接]

升级  30.67%

24

主题

24

主题

24

主题

秀才

Rank: 2

积分
96
 楼主| 发表于 2013-2-5 02:36:06 | 显示全部楼层 |阅读模式
fork 创建子进程,特点: 调用一次,返回两次。
 
#include<stdio.h>int main(char** args) {     int cpid = fork();  if(cpid == 0) {     //in the child process     printf("I am child process, PID= %d, cpid = %d \n",getpid(),cpid);  }   else if(cpid > 0) {     //in the parent process    printf("I am parent process, PID= %d, cpid = %d \n",getpid(),cpid);  }  else {     //unable to create child process     perror("unable to create child");  } } 
/*
int r = fork()
如果返回0,则表示进入子进程代码逻辑;
如果返回正数,该正数等于子进程的进程号,并执行父进程的后继逻辑;
如果返回负数,则表示子进程创建失败,数值表示失败的原因。
调用一次,返回两次,至于先返回子进程,还是返回父进程是不可预知的。
*/
 
编译并运行
bash-3.00$ gcc -o forkdemo.o forkdemo.c
bash-3.00$ forkdemo.o
I am parent process, PID= 1667082, cpid = 839764
I am child process, PID= 839764, cpid = 0
bash-3.00$ ls
forkdemo.c  forkdemo.o  lib.c       lib.o       main.c      main.o      myHello     tags
bash-3.00$
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表