я сделал что-то неправильно в моем коде, где другой процесс отправки сигнала SIGUSR2 к нему:Застрял с sigwait
sigset_t sigset;
sigemptyset(&sigset);
sigaddset(&sigset, SIGILL);
sigaddset(&sigset, SIGUSR2);
sigwait(&sigset, &received);
Xcode уведомления SIGUSER2 (31) сигнал, принятый, но получил = SIGILL (4) (или минимальный сигнал в наборе).
Почему это так? Где я ошибаюсь?
Теперь это выглядит следующим образом:
sigset_t sigset;
sigemptyset(&sigset);
sigaddset(&sigset, SIGILL);
sigaddset(&sigset, SIGUSR2);
sigprocmask(SIG_BLOCK, &sigset, 0);
sigwait(&sigset, &received);
if(received == SIGUSR2) {
//...
} else if(received == SIGILL) {
//...
}
До сих пор не работает.
Тогда у меня нет подсказки, где я ошибаюсь :( –
@ user408141: Работает ли мой код для вас? Какой вывод вы получите, если вы его построите, запустите и убейте -USR2 это –
@ user408141: Кроме того, не запускайте программу в отладчике. Я видел, что отладчик и сигналы не работают вместе в прошлом. Отладчик может быть проблемой. –