Khi tôi chạy vào mã bên dướigetpid và getppid trở lại hai giá trị khác nhau
#include <stdio.h>
#include <sys/types.h>
//int i=0;
int main(){
int id ;
id = fork() ;
printf("id value : %d\n",id);
if (id == 0)
{
printf ("Child : Hello I am the child process\n");
printf ("Child : Child’s PID: %d\n", getpid());
printf ("Child : Parent’s PID: %d\n", getppid());
}
else
{
printf ("Parent : Hello I am the parent process\n") ;
printf ("Parent : Parent’s PID: %d\n", getpid());
printf ("Parent : Child’s PID: %d\n", id);
}
}
đầu ra của tôi là
id value : 20173
Parent : Hello I am the parent process
Parent : Parent’s PID: 20172
Parent : Child’s PID: 20173
id value : 0
Child : Hello I am the child process
Child : Child’s PID: 20173
Child : Parent’s PID: 1
Làm thế nào có thể PID của cha mẹ (20.172) khác với ID của cha mẹ của đứa trẻ (1) ? Hai người đó có bình đẳng không?
Hoặc, thông thường hơn, wait() và waitpid(). – user314104
@Jackson đã thêm thông tin khác với liên kết. Tôi cảm thấy nó cần phải hoàn thành câu trả lời tốt của bạn. nếu bạn không thích quay trở lại. –