首页 > 试题广场 >

下面程序一共会在屏幕上输出多少个“-” ?[$##$]

[填空题]
下面程序一共会在屏幕上输出多少个“-” ?1

#include<iostream>
#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
using namespace std;
int main( )
{
    int i;
    for(i = 0; i < 2; i++)
    {
        cout<<"-\n";
        fork( );
        cout <<"-\n";
    }
    cout << endl;
    return 1;
}

先输出1个,再分裂成进程1和进程2分别输出一个,第一轮输出三个。 第二轮进程1和进程2分别输出一个,此时五个,再分别分裂出一个进程3和进程4,四个进程分别再输出一个,结果一共九个。
发表于 2017-10-17 21:07:39 回复(0)
一共9次,顶一楼的观点

发表于 2019-08-07 16:15:33 回复(0)
      计算机程序设计中的分叉函数。返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。
      fork函数将运行着的程序分成2个(几乎)完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程。这两个进程中的线程继续执行,就像是两个用户同时启动了该应用程序的两个副本。

第一次第一个cout输出一个"-"。
然后fork函数将运行的程序分成两个(几乎)完全一样的进程
第一次第二个cout输出两个“-”。
第二次第一个cou还是输出两个“-”。
然后fork函数将运行的两个程序分成四个(几乎)完全一样的进程。
第二次第二个cou输出四个“-”。
所以总共输出的“-”个数为count=1+2+2+4=9
发表于 2017-09-05 17:14:53 回复(7)
9个 第一轮产生一个子进程 父子 一***生3个,第二轮两个进程产生2个子进程一共输出 2*2 +2 个,一共9个。因为都输出了\n 不用考虑缓冲问题
发表于 2017-12-07 19:12:15 回复(0)
9
发表于 2017-11-07 07:59:35 回复(0)
fork函数的使用
发表于 2017-10-19 15:46:51 回复(0)
9个 第一次循环主进程process1先输出一个,执行fork后,分裂为两个进程,每个进程都输出1个,总共3个;两个进程进入第二次循环后执行步骤与主进程第一次循环相同,所以总数为3乘3
发表于 2017-10-17 23:36:09 回复(0)
应该4
发表于 2017-10-14 15:09:42 回复(1)