Описание тега sigprocmask

1 ответ

Официальный документ о ВСЕХ шагах очистки после форка перед exec

В Unix я знаю, что после вызова fork() мне нужно сбросить маску сигналов и закрыть файловые дескрипторы, которые я не хочу иметь у дочернего элемента, перед вызовом exec(). Но что еще мне нужно сделать? Есть ли где-нибудь исчерпывающий документ, в к…
08 фев '14 в 18:09
1 ответ

sigprocmask не работает, вызвать цикл

Эта часть кода использовалась для запуска нового процесса при получении сигнала SIGUSR1, поскольку у этого процесса есть дочерний процесс, также необходимо выйти, поэтому используйте kill send SIGUSR1 для группы процессов, чтобы избежать цикла, исп…
24 ноя '16 в 04:50
1 ответ

Доставка Сигнала после сигпрокмаски

У меня сложилось впечатление, что с помощью sigprocmask() разблокирование сигнала приведет к обработке ожидающего заблокированного сигнала. В конкретном случае, когда sigprocmask() используется для разблокировки сигналов, если есть ожидающий сигнал …
05 май '18 в 22:31
1 ответ

Установка маски с помощью sigprocmask работает только в зависимости от того, где она вызывается

У меня странное поведение, когда manpage и google не помогли. В моем коде я хочу заблокировать / разблокировать SIGINT при отправке SIGUSR2. Для этого я устанавливаю обработчик сигнала и подготавливаю набор для маски в функции: void installSignallHa…
24 апр '14 в 15:26
0 ответов

sigprocmask с SIG_BLOCK не блокирует SIGALRM

Это пример программы для проверки, действительно ли sigprocmask блокирует сигнал SIGALRM, связанный с моим таймером. Оказывается, это не так. Мой обработчик вызывается, даже когда сигнал заблокирован. Был бы очень признателен, если кто-то может указ…
06 май '18 в 03:15
1 ответ

Сигналы в параметре "set" sigtimedwait() не доставляются

В последнее время я работал над обработкой сигналов в Linux и прочитал все концепции, связанные с обработкой сигналов. Один вопрос, который заставляет меня задуматься, заключается в том, почему сигнал из набора sigtimedwait() не доставляется, пока п…
1 ответ

sigprocmask, приводящий к зависанию основного процесса

У меня есть многопоточный код, который использовал sigprocmask fn. Известно, что использование этого вызова не определено в многопоточной программе, которую я понимаю, и я удалю этот вызов. Однако проблема, с которой я сталкиваюсь, заключается в том…
24 авг '11 в 10:03
1 ответ

sigprocmask не работает

Я использую sigprocmask следующим образом: void mask(){ sigset_t new_set,old_set; sigemptyset(&new_set); sigaddset(&new_set,SIGALRM); sigprocmask(SIG_BLOCK, &new_set, &old_set); } и, к моему удивлению, функция, которая печатает больш…
26 май '10 в 05:15
1 ответ

sigprocmask не восстанавливает мой обработчик сигнала

У меня проблема с моим кодом C Unix. Я скопирую важные части: поэтому после первой sigprocmask, которую я посылаю сигнал, после SIG_UNBLOCK, не работает предыдущий дескриптор (gestisciSignalDopoReg), вместо этого стандартный дескриптор управляет мои…
03 май '15 в 19:24
1 ответ

Какова идея использования сигналов здесь?

Читая и изучая сигналы, я обнаружил программу, которая использует сигналы определенным образом. Я пытался понять это, но я не уверен, как все части кода взаимодействуют с другой. Ниже приведен вышеупомянутый код, и я добавил комментарии, где у меня …
03 фев '19 в 11:44
1 ответ

Unix sigset_t с использованием sigprocmask()

Я пытаюсь напечатать sigset используя printf. В этой программе я использовал sigprocmask для блокировки SIGHUP и SIGTERM. После инициализации set и oset для пустых множеств, они дают несколько случайных шестнадцатеричных строк в качестве вывода. Как…
07 ноя '15 в 06:25
1 ответ

Set и Oldset в sigprocmask()

Я не совсем понял, как использовать sigprocmask(), В частности, как set а также oldset и его синтаксис работы и как их использовать. int sigprocmask(int how, const sigset_t *set, sigset_t *oldset); Пожалуйста, объясните на примере, чтобы заблокирова…
24 авг '08 в 18:23
2 ответа

sigprocmask() блокирует сигналы в UNIX

Я написал небольшой кусочек кода. Этот код сначала блокирует {SIGSEGV}, затем добавляет SIGRTMIN к тому же набору. Итак, мой последний набор сигналов: {SIGSEGV,SIGRTMIN}. Таким образом, если я использую SIG_UNBLOCK, согласно моему пониманию, сначала…
13 мар '11 в 10:51
1 ответ

OS X sigaction неправильно устанавливает sa_mask

На macbook (OSX 10.9.5 (13F34)) следующая простая программа: #include <stdio.h> #include <signal.h> static void nop(int unused) { } int main(void) { struct sigaction sa, osa; sigset_t mask; sigemptyset(&sa.sa_mask); printf("Errno aft…
26 ноя '14 в 21:33
2 ответа

sigprocmask во время выполнения сигнала

Я в настоящее время исследую с помощью sigprocmask блокировать определенные сигналы (в этом случае SIGALRM а также SIGCHLD) когда выполняется критический сегмент кода. Оба обработчика сигналов, связанные с этими сигналами, получат доступ и изменят ц…
17 ноя '11 в 01:00
1 ответ

Последовательные сигналы между двумя процессами

У меня есть родительский процесс и двое детей. Родительский процесс создает только двух детей, читателя и счетчика, и ожидает его смерти. Дети делают следующие вещи. Первый ребенок (читатель): открывает файл, читает строку, отправляет сигнал (SIGUSR…
07 дек '15 в 22:40
1 ответ

Каково поведение блокировки сигнала?

Если я посылаю кучу сигналов SIGIO процессу и тому блоку сигналов SIGIO и выполняю что-то еще. Когда я разблокирую сигнал, будет ли в последовательности только один сигнал SIGIO или несколько сигналов SIGIO?
12 апр '16 в 01:46
1 ответ

sigprocmask() вызывает segfault

Есть ли какие-либо общеизвестные причины, по которым sigprocmask () может вызывать segfault при использовании в многопоточном приложении? У меня есть приложение, которое создает несколько потоков, используя clone(). Я определил, что по какой-то прич…
31 янв '10 в 05:32
1 ответ

Как заблокировать сигналы в C?

Я пытаюсь создать программу, которая блокирует сигнал SIGUSR1 и разблокирует сигнал. В середине я хочу видеть, что сигнал блокируется с помощью sigpending, Но это всегда говорит о том, что сигнал не заблокирован, и я могу использовать сигнал, когда …
20 ноя '12 в 20:04
1 ответ

Должны ли дочерние процессы также разблокировать заблокированные сигналы SIGCHLD?

Я пытаюсь понять, как работают сигналы блокировки и разблокировки, и я пытаюсь понять следующий фрагмент кода. В частности, я смотрю на строку 28 (прокомментировано в коде): int a = sigprocmask(SIG_UNBLOCK, &mask, NULL);ака где сигнал разблокиро…
24 апр '19 в 20:36