【发布时间】:2025-12-05 22:00:02
【问题描述】:
当我在 main 中调用 fork() 时,子进程 ID 没有得到 0 值。 我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
int main(){
pid_t pid = fork();
printf("pid in child=%d and parent=%d\n",getpid(),getppid());
wait(NULL);
}
还有输出:
pid in child=15690 and parent=11593
pid in child=15691 and parent=15690
问题出在哪里?据我所知,我应该在第二行获得子进程的 0 值。
【问题讨论】:
-
fork返回的 pid 在子进程中为零。孩子和父母都有pid,但孩子可能不需要知道自己的。