Есть два процесса - один родительский, второй дочерний. В дочернем стоит обработчик сигнала SIGIO, а в родительском нет. Когда я посылаю сигнал в дочерний - срабатывает обработчик и всё окей. Когда же я посылаю из дочернего:
__pid_t ppid = getppid();
int res = kill(ppid, SIGIO);
А зачем тогда функция sigwaitinfo? И прочие wait-ы? Вот как я жду в родительском процессе сигнала от дочернего:
sigset_t sset;
siginfo_t sinfo;
sigemptyset(&sset);
sigaddset(&sset, SIGIO);
int sig = sigwaitinfo(&sset, &sinfo);
Если я сделаю обработчик - то как сигнал будет попадать сюда?
В общем, вопрос: можно ли посылать (ну ясно что тут kill или sigqueue) и принимать сигналы без обработчиков? Допустим у меня есть поток - в нем я блокируюсь и жду спокойно любого сигнала от дочернего процесса...