Fatal
написал 2 октября 2004 года в 20:29 (947 просмотров)
Ведет себя
как мужчина; открыл 123 темы в форуме, оставил 484 комментария на сайте.
Подскажите, пожалуйста, как использовать sigvec(int,struct
sigvec *,struct sigvec*);
Я смотрел в manual pages, там ничего не понятно, хоть примерчик
какой-нибудь бы написали.
struct sigvec {
void (*sv_handler)();
int sv_mask;
int sv_flags;
};
void (*sv_handler)(); — понятно что это обработчик.
sv_mask; — это, как я понял, сигналы которые блокируются
(какая разница между блокирование и игнорированием?) процессом.
sv_flags; — ???
И что задают параметры sigvec()?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
В man sigvec (linux) написано, что sigvec устарел и надо использовать sigaction. может это и для BSD справедливо? sv_flags используется для установки дополнительных флагов. Существует по историческим причинам — пока обработка сигналов не была стандартизирована posix. Обычно устанавливается в 0. Дополнительные флаги (по памяти) SA_RESTART, SA_INTERUPT.
Сигналы которые игнорируются процессом отправляется на помойку. Сигналы которые блокированы будут доставлены процессу как только процесс разблокирует их доставку.
sigprocmask(SIG_BLOCK,&block_mask,&old_mask);//блокируем сигналы
//пришел сигнал заданный в block_mask и заблокировался
sigprocmask(SIG_UNBLOCK,&old_mask,&block_mask);//разблокируем сигналы
//доставляется сигнал ранее заблокировавшийся
У меня в ASPLinux 9 не написано об устареввании этого вызова, там толко сказано, что sigvec это макрос на sigaction…
Спасибо за информацию