/ / hodnota vrátená vidlicou () system call - process, fork

hodnota vrátená vidlicou () system call - proces, vidlice

Prečo systémové volanie vidlice () nevráti procesné ID rodičovského dieťaťa a nevráti nulu do rodičovstva?

pid_t pid;
pid = fork();

V tejto časti je návratový kód pre vidlicu () nulový pre dieťa a id procesu (nie je nula) dieťaťa sa vráti k rodičovi.

Ako nájdem PID rodiča od dieťaťa?

odpovede:

0 pre odpoveď č. 1

Môžete ho uložiť skôr, ako urobíte vidličku (). vidlica () je napísaná, aby sa vrátil identifikátor, ktorý nebol známy, kým nebol vykonaný vidlica.


0 pre odpoveď č. 2

Vždy môžete získať PID rodiča pred vidličkou a ponechať ju v premennej. Po vidlici to bude rovnaké. Proste bež:

pid_t parent;
....
parent = getpid();
pid = fork(); //If pid is 0 your parent"s pid is in parent