gpt4 book ai didi

c - 父进程和主进程之间的区别以及如何检测主进程?

转载 作者:太空宇宙 更新时间:2023-11-04 05:47:55 26 4
gpt4 key购买 nike

在下面的示例中,我创建了 3 个另一个进程,并且还有 1 个主进程。所以总共有 4 个进程正在执行。我的问题是,我可以通过控制 fork 系统调用函数的返回值来检查哪个进程是父进程,哪个进程是子进程。但是,如何检测主流程的执行情况?主进程和父进程有什么区别?

#include <stdio.h> 
#include <unistd.h>
#include <sys/types.h>
int main()
{
int a =fork();
int b =fork();


if (a == 0)
printf("Hello from Child(A)!\n");

// parent process because return value non-zero.
else
printf("Hello from Parent(A)!\n");

if (b == 0)
printf("Hello from Child(B)!\n");

// parent process because return value non-zero.
else
printf("Hello from Parent(B)!\n");


return 0;
}

最佳答案

您的代码创建了 4 个进程:

  • (a > 0) && (b > 0) : 原流程
  • (a == 0) && (b > 0) : 原进程的第一个子进程(child A)
  • (a > 0) && (b == 0) : 原进程的第二个子进程(子B)
  • (a == 0) && (b == 0):child A(child AA)的第一个子进程

记住 fork创建一个子进程,并在父进程中返回该子进程的pid,在子进程中返回0。

关于c - 父进程和主进程之间的区别以及如何检测主进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55258933/

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