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