2
我学习process forking我试图清单3的代码:的Unix叉了解
sunbox$ cat fork2.c
#include <unistd.h>
#include <stdio.h>
int main (void) {
pid_t p;
printf("Original program, pid=%d\n", getpid());
p = fork();
if (p == 0) {
printf("In child process, pid=%d, ppid=%d\n",
getpid(), getppid());
} else {
printf("In parent, pid=%d, fork returned=%d\n",
getpid(), p);
}
}
sunbox$ gcc fork2.c -o fork2
sunbox$ ./fork2
Original program, pid=767
In child process, pid=768, ppid=767
In parent, pid=767, fork returned=768
输出我得到:
Original program, pid=2728 In parent, pid=2728, fork returned=2731 In child process, pid=2731, ppid=2728
尽管样本页面显示了孩子先输出,然后是父母?我不明白这一点。
另外,当我在大学实验室运行代码时,我得到的输出如页面所示。为了回答这个天真的问题,非常感谢麻烦。
如果有问题,我正在运行Ubuntu 11.04。
更好的地方问POSIX相关的问题是[unix.se](http://unix.stackexchange.com/) – ierax
我已经把你正在讨论的代码在你的问题。 – JeremyP
@faif:由于它与POSIX软件开发有关,我认为它属于SO。 – Rob