fork() 函数

linux系统中,pid_t fork(void)的功能是什么?其返回值的意义是什么呢?

fork用来创建子进程,创建失败时返回负数;创建成功时返回两个值:父进程的fork返回一个正数表示子进程的进程ID,子进程的fork返回0。这里要有一个概念:fork调用成功后就是两个进程在运行,而不是一个了。

这个写个void 意思是不接受参数

#include <unistd.h> 
#include <stdio.h>  
int main ()  
{  
    pid_t fpid; //fpid表示fork函数返回的值 
    int count=0; 
    fpid=fork();  
    if (fpid < 0)  
        printf("error in fork!");  
    else if (fpid == 0) { 
        printf("i am the child process, my process id is %d\n",getpid()); 
        printf("我是爹的儿子\n");//对某些人来说中文看着更直白。
        count++; 
    } 
    else { 
        printf("i am the parent process, my process id is %d\n",getpid());  
        printf("我是孩子他爹\n"); 
        count++; 
    } 
    printf("统计结果是: %d\n",count); 
    return 0; 
}  

nyc@nyc-computer:~$ gcc exp_fork.c -o exp_fork
nyc@nyc-computer:~$ ./exp_fork
i am the parent process, my process id is 5569
我是孩子他爹
统计结果是: 1
i am the child process, my process id is 5570
我是爹的儿子
统计结果是: 1


nyc@nyc-computer:~$ ./exp_fork
i am the parent process, my process id is 5572
我是孩子他爹
统计结果是: 1
i am the child process, my process id is 5573
我是爹的儿子
统计结果是: 1


nyc@nyc-computer:~$ ./exp_fork
i am the parent process, my process id is 5574
我是孩子他爹
统计结果是: 1
i am the child process, my process id is 5575
我是爹的儿子
统计结果是: 1


nyc@nyc-computer:~$ ./exp_fork
i am the parent process, my process id is 5576
i am the child process, my process id is 5577
我是孩子他爹
我是爹的儿子
统计结果是: 1
统计结果是: 1
nyc@nyc-computer:~$ 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值