[10][9][单选]对于如下 C 语言程序
int main() { printf("Hello World\n"); fork(); fork(); fork(); printf("Hello World\n"); }
在 UNIX 操作系统中正确编译链接后,其正确的运行结果是
共打印出 6 行 Hello World
共打印出 7 行 Hello World
共打印出 8 行 Hello World
共打印出 9 行 Hello World
答案
9 行 Hello World
解析
计算机程序设计中的 fork()函数的返回值:若成功调用一次则返回两个值,子进程返回 0,父进程返回子进程标记;否则,出错返回 -1。在创建进程之前输出 1 行 Hello World。假设程序正确运行并创建子进程成功,第一个 fork()函数调用后将有两个进程,第二个 fork()函数调用后将有 4 个进程,第三个 fork()函数调用后将有 8 个进程,所以共打印出 9 行 Hello World。故本题答案选择 D 选项。涉及考点为第 3 章进程线程模型。
转载请注明出处。