[14][9][单选]对于如下C语言程序
int main(
{
int i;
for (i = 0; i < 3; i++
{
fork(;
printf("Hello World\n";
}
}
答案
共打印出14行Hello World
解析
在UNIX类操作系统中,父进程通过调用fork(函数创建子进程,fork(函数执行的特点是:调用一次,返回两次,两次从当前位置开始执行;即在父进程中调用fork(函数: 当第一次时,调用fork(函数创建一个子进程,此时父进程A,子进程B都接着执行printf(函数,输出2行Hello World; 接着父子进程的变量i自增为1,接着执行fork(循环,父进程A接着创建自己的子进程C,子进程B也创建自己的子进程D,接着4个进程A、B、C、D都执行printf(函数,再次输出4行Hello World; 接着父子进程的变量i自增为2,接着执行fork(循环,父进程A接着创建自己的子进程E,子进程B也创建自己的子进程F,子进程C也创建自己的子进程G,子进程D也创建自己的子进程H,接着8个进程A、B、C、D、E、F、G、H都执行printf(函数,再次输出8行Hello World; 最后程序执行结束。所以该程序总共会输出14行Hello World,故选择D选项。【涉及考点】
第3章 进程线程模型
转载请注明出处。