Miałem takie zadanie na teście. Miałem napisać co się wypisuje na ekranie. Po skąpilowaniu wyszło mi axcxexgxixkx jednak nie wiem za bardzo skąd to się wzieło.
tu rozumiem jest pobranie pid procesu głównego
Tutaj nie wiem co się za bardzo dzieje. Czy do tego ifa wchodzą tylko procesy potomne ?
Tutaj wszystkie procesy potomne są zamykane
Tutaj proces główny (p1) czeka aż wszystkie procesy potomne sie wykonają ?
Jeśli się gdzieś mylę to proszę mnie poprawić ponieważ nie jestem pewien za bardzo jak to się dzieje w tym programie
Zwraca 0 gdy jest w procesie rodzica, a zwraca pid dziecka gdy jest w procesie dziecka. Zatem ten if wykona się jeżeli fork() realizuje go false, czyli jest w procesie rodzica.
Jeśli wchodzi tam tylko rodzić to pętla while zostaje zatrzymana przy break a wtedy i=1 ? A przecież + nie pokazuje się na żadnej pozycji. Nie wiem co się stanie w tej pętli while.
Czyli podsumowując rodzic nie wchodzi do ifa (2) tylko jego dzieci tam wchodzą. Dzieci zmieniają zmienną t ale rodzic ma niezmienioną swoją zmienną t więc wypisuje oryginalny tekst rodzica. Dobrze zrozumiałem?