Odchytenie signálu (SIGCHLD) ============================ Do pripravenej kostry doplňte funkciu pre obsluhu signálu SIGCHLD, ktorý proces dostane keď jeho potomok skončí (alebo zmení stav), ako aj nastavenie obsluhy pre tento signál. Hotové časti kostry nemeňte. Výpisy musia zodpovedať príkladu nižšie. Pre potrebné výpisy smiete v obsluhe signálu použiť funkciu printf(). V komentári vysvetlite prečo. Program vytvorí nový proces ktorý vykonáva nejakú prácu pri ktorej urobí výpisy a potom sa ukončí. Rýchlosť respektíve doba vykonávania potomka, ako aj jeho návratový kód, závisia od číselného argumentu. Rodičovský proces tiež vykonáva prácu (výpočty) a potom sa ukončí. Ak počas svojej činnosti zachytí signál SIGCHLD, vypíše hlásenie v tvare: "PARENT: caught SIGCHLD signal (number %d)\n" ktoré obsahuje číslo zaslaného signálu, potom zistí stav dcérskeho procesu a ak sa ukončil vypíše hlásenie "PARENT: child finished with exit code: %d\n" ktoré obsahuje návratový kód s ktorým sa dcérsky proces ukončil. Zvážte znovunainštalovanie funkcie obsluhujúcej signál po jeho príchode. Príklad výstupu: $ ./sigchld 50 PARENT: new child process created with pid 10019 PARENT: start working CHILD process: working progress 10% done CHILD process: working progress 20% done CHILD process: working progress 30% done CHILD process: working progress 40% done CHILD process: working progress 50% done CHILD process: working progress 60% done CHILD process: working progress 70% done CHILD process: working progress 80% done CHILD process: working progress 90% done CHILD process: working progress 100% done CHILD process: finished, exit code set to: 50 PARENT: caught SIGCHLD signal (number 17) PARENT: child finished with exit code: 50 PARENT: finished