Tôi đã chạy chương trìnhTại sao getppid() từ sự trở lại con 1
#include<stdio.h>
#include <unistd.h>
main()
{
pid_t pid, ppid;
printf("Hello World1\n");
pid=fork();
if(pid==0)
{
printf("I am the child\n");
printf("The PID of child is %d\n",getpid());
printf("The PID of parent of child is %d\n",getppid());
}
else
{
printf("I am the parent\n");
printf("The PID of parent is %d\n",getpid());
printf("The PID of parent of parent is %d\n",getppid());
}
}
đầu ra tôi nhận được.
$ ./a.out
Hello World1
I am the parent
The PID of parent is 3071
The PID of parent of parent is 2456
I am the child
The PID of child is 3072
The PID of parent of child is 1
tôi couldnt hiểu dòng
Các PID của cha mẹ của đứa trẻ là 1
Nó cần phải có được 3071?
Bạn sẽ quan sát hành vi bạn mong đợi bằng cách thêm các lệnh thích hợp 'fflush (NULL);' (trước lệnh 'fork') và' sleep (1); '(trong cả hai phần còn lại của' if' và ngay trước khi kết thúc 'main'). –