C语言 为什么子进程运行代码意味着父进程



下面的代码片段也由子进程运行,但我不知道为什么,因为在我的理解中,子进程的Pid应该总是为0,所以它没有理由在下面做任何事情,除了打印"I am child"

pid_t child_Pid1 = fork();
if((int)getpid() == 0) {
printf("I am childn");
} else {
printf("I am parentn");
}

getpid()总是返回当前进程的pid,该pid永远不会为零,因此在您当前的代码中,两个进程都不执行execlp

你想看child_Pid1而不是getpid()。在子节点中,它返回0而不是子进程的pid。

最新更新