Я пытаюсь использовать sigsuspend
, чтобы заставить процесс ждать сигнала, отправленного его ребенком.Проблема в том, что когда я пытаюсь скомпилировать код, usr_interupt
кажется необъявленным.Что я делаю неправильно?Я думаю, что строго следую инструкции GNU
Код отцов:
sigemptyset (&mask);
sigaddset (&mask, SIGUSR2);
sigprocmask (SIG_BLOCK, &mask, &oldmask);
while (!usr_interrupt)
sigsuspend (&oldmask);
sigprocmask (SIG_UNBLOCK, &mask, NULL);
Код ребенка:
kill(getppid(), SIGUSR1);