Привет всем, кого я хочу задать вопрос о разветвлении
вот код
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#define MAX_COUNT 5
#define BUF_SIZE 100
void main(void)
{
pid_t pid;
int i;
char buf[BUF_SIZE];
fork();
pid = getpid();
for (i = 1; i <= MAX_COUNT; i++) {
sprintf(buf, "This line is from pid %d, value = %d\n", pid, i);
write(1, buf, strlen(buf));
}
printf("child id :%d\n" , pid);
printf("parent id :%d\n" , getppid());
}
и когда я запускаю его здесь, вывод
This line is from pid 31130, value = 1
This line is from pid 31130, value = 2
This line is from pid 31130, value = 3
This line is from pid 31130, value = 4
This line is from pid 31130, value = 5
child id :31130
This line is from pid 31131, value = 1
parent id :31052
This line is from pid 31131, value = 2
This line is from pid 31131, value = 3
This line is from pid 31131, value = 4
This line is from pid 31131, value = 5
child id :31131
parent id:31130
меня действительно смутило, почему
идентификатор родительской строки и идентификатор потомка, напечатанные два раза
почему значение дочернего идентификатора отличается, когда я вызвал
только один раз
почему значение идентификатора второго родительского идентификатора равно значению первого идентификатора дочернего элемента
что на самом деле Id родителя и Чили спасибо большое