在 UNIX 操作系统中正确编译链接后,其正确的运行结果是
int main() { printf("Hello World\n"); fork(); printf("Hello World\n"); }
共打印出 2 行 Hello World
共打印出 3 行 Hello World
共打印出 4 行 Hello World
共打印出 5 行 Hello World
答案
共打印出 3 行 Hello World
解析
在 UNIX 操作系统中,当程序执行 fork() 函数时,它会创建一个新的进程——子进程。fork() 函数在两个进程中都会返回,一次是在父进程中,返回子进程的进程标识符(PID);另一次是在子进程中,通常返回 0。
在这个例子中,程序先打印出第一行 "Hello World",然后执行 fork() 创建子进程。此时,父进程和子进程都会继续执行后面的代码,各自再打印一行 "Hello World"。
因此,总共会有三条输出:
第一个 "Hello World" 来自主进程,在 fork() 之前打印。
第二个 "Hello World" 来自主进程,在 fork() 之后打印。
第三个 "Hello World" 来自子进程,在 fork() 之后打印。
所以,程序正确运行后共打印出 3 行 "Hello World"。