fork()函数

下面的程序执行输出几个hello?
1
2
3
4
5
6
7
8
9
#include<stdio.h>
#include <unistd.h>
int main( ) {
     fork( );
     fork( );
     fork( );
     printf (“hello\n”);
     return 0;
}
  • 3
  • 4
  • 6
  • 8

    正确答案:D



    fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。
    fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值: 新创建的子进程返回一次,父进程返回一次
        1)在父进程中,fork返回新创建子进程的进程ID;
        2)在子进程中,fork返回0;
        3)如果出现错误,fork返回一个负值;
    类似题目:http://www.nowcoder.com/questionTerminal/1f6cc9c0ef354f86b1727c6c030a1a19


    fork().调用系统调用创建于原来进程相同的进程,使得进程数加倍,变成2个;
    fork() //2个相同的进程
    fork()  //4个相同进程
    fork()  //8个相同的进程



    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值