gpt4 book ai didi

fork - unix 中的多个分支

转载 作者:行者123 更新时间:2023-12-04 02:14:08 25 4
gpt4 key购买 nike

main() {
fork();
fork();
printf("Hello world\n");
}

在上面的程序中,父进程产生了一个子进程。子进程又会产生一个孙进程。执行此程序后,我得到以下输出。

Macintosh:unix NightFury$ ./a.out 
Hello world
Hello world
Hello world
Macintosh:unix NightFury$ Hello world

为什么输出不作为单个进程输出?是的,应该打印 4 个“Hello world”,但为什么最后一个打印为单独的进程?

最佳答案

shell 等待第一个 进程结束,然后再次打印 shell 提示符。你有另外三个进程在运行,此时其中两个在 shell 提示出现之前写入输出,一个在出现之后写入输出。每次运行您的程序时,事情可能不会按照这个确切的顺序发生 - 有时您可能早晚会收到 shell 提示符,而不是这个示例。

这就是您可以编写在“后台”持续运行的程序的方法。

关于fork - unix 中的多个分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7699736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com