Merhaba Arkadaşlar

şu programı derleyince:

# include <sys/types.h>
# include <unistd.h>
# define MAXNUMBER 100000
int main(){
char pid[MAXNUMBER];
fork();
fork();
fork();
fork();
sprintf(pid, "PID = %d\n", getpid());
write(STDOUT_FILENO, pid, strlen(pid));
exit(0);
}


Şöyle bir çıktı veriyor: Bu çıktıya göre kaç tane child process var şimdi? 2613 ve 2617 ne burada?




PID = 2613
bla@bla-VirtualBox:~/Desktop/fern$ PID = 2617
PID = 2616
PID = 2614
PID = 2615
PID = 2620
PID = 2618
PID = 2619
PID = 2623
PID = 2622
PID = 2621
PID = 2624
PID = 2625
PID = 2627
PID = 2626
PID = 2628

 

tam saymadım 16 olmalı her fork 2 ye ayırır fork attığıyerden devam eder 4 level tree gibi dusun 16 leaf var child

iplikci

2613 yukardaki kod forktan önce 13 ilk fork sag treenode 17 ilk fork sol tree

iplikci

şu çıkıyor aslında

Açıklamasını merak ettim niye böyle dallandı bu:

i.imgur.com

beholderrulez
1

mobil görünümden çık