Cześć! Potrzebuje pomocy przy realizacji takiego problemu: mam 3 procesy potomne i 1 proces macierzysty. Procesy potomne są zastopowane sygnałem SIGSTOP(macierzysty nie). Operator(użytkownik) wysyła do któregoś z tych 3 procesów jeden sygnał(ma działać dla każdego), który ma spowodować wznowienie się wszystkich. Korzystam z biblioteki signals.h, ale funkcja ktora jest handler'em nie działa:
void wznow(int sig)
{
if(pid_parent == getpid())//jesli sygnal odebral rodzic
{
kill(pid3, 25);
kill(pid2, 25);
kill(pid1, 25);
}
else//jesli odebral proces potomny
kill(pid_parent, 25);
}
Próbowałem już na wiele sposobów, ale żaden nic nie dał. Główny problem polega na tym, że proces zastopowany może odebrać tylko sygnały SIGCONT i SIGKILL(którego nie można przechwycić).
Za wszelką pomoc dziękuję :)
PS: Pracuje na UNIX'ie