Не подскажите, Код: ... sigemptyset(&zeromask); sigemptyset(&newmask); sigaddset(&newmask,SIGINT); ... sigprocmask(SIG_BLOCK, &newmask,&oldmask); tmp_set = read_set; tmp_time_spec = time_spec; r_code = pselect(FD_SETSIZE, &tmp_set, NULL,NULL, &tmp_time_spec, &zeromask); .... //sigprocmask(SIG_SETMASK, &oldmask,NULL); //? нужна .... r_code = read(fd, buf, 10); // если сигнал SIGINT блогирован, то он не будет // доставляться процессу и не прервет read // поэтому и вопрос ? if(r_code == 10) { ... } .... После возврата из 'pselect()' маска сигналов процесса будет с блокируемым сигналом 'SIGINT' или нет ? То что pselect() восстанавливает маску сигналов процесса я в курсе, но не совсем понимаю, восстановит как было до вызова sigprocmask() ? Или нужно после pselect() вставить //sigprocmask(SIG_SETMASK, &oldmask,NULL); Возможно пример глупый, но тем не менее.
Ответ на:
комментарий
от klalafuda
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от klalafuda
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от klalafuda
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Как выйти из системного вызова внутри потока? (2021)
- Форум Некорректная работа учебной программы обработки сигналов (2012)
- Форум Блокировки (2015)
- Форум Блокировка? (2015)
- Форум блокировки (2001)
- Форум Блокировка (2004)
- Форум Блокировка (2005)
- Форум Уникальный сигнал (2016)
- Форум Мощность сигнала (2012)
- Форум Нет сигнала (2018)