Описание тега signal-handling
В стандартной библиотеке C обработка сигналов определяет, как программа обрабатывает различные сигналы во время выполнения. Сигнал может сообщать о каком-то исключительном поведении в программе (например, делении на ноль), или сигнал может сообщать о некотором асинхронном событии вне программы (например, о том, что кто-то нажимает интерактивную клавишу внимания на клавиатуре).
1
ответ
Как получить сигнал от ребенка
Напишите программу, которая создает дочерний процесс с использованием fork (). Дочерний объект печатает имя своего родителя, идентификатор родителя и собственный идентификатор, в то время как родитель ожидает сигнала от дочернего процесса. Родитель …
21 мар '15 в 07:29
2
ответа
Как получить более двух последовательных сигналов?
Если я отправлю несколько последующих Hangup сигналы для следующей программы, только две из них будут обработаны, а остальные будут игнорироваться: #include <stdio.h> #include <unistd.h> #include <signal.h> int id; void handler(int…
28 дек '11 в 08:19
1
ответ
Подпроцесс python избегает обработки сигналов дочерним процессом
У меня в скрипте есть обработчик сигнала usr1. Посылая SIGUSR1 извне в мой скрипт, мой обработчик выполняет свою работу, но сигнал распространяется и на потомка, который я создаю через Popen. Как я могу это сделать?
02 окт '12 в 15:32
1
ответ
Сигналы CTRL+C и CTRL+Z не будут блокироваться в C
Я написал следующий код для простой игры для 3 игроков на C. Поток: 1) Попросите пользователя выиграть счет 2) 3 ребенка сформированы 3) Каждый будет генерировать случайные оценки и накапливать их 4) Тот, кто наберет выигрышный счет, выигрывает и за…
14 мар '16 в 18:57
1
ответ
Обработка сигналов сиграцией
Я читал об использовании системного вызова pselect, когда наткнулся на этот код и комментарии... static void handler(int sig) { /* do nothing */ } int main(int argc, char *argv[]) { fd_set readfds; struct sigaction sa; int nfds, ready; sa.sa_handler…
21 июн '12 в 15:14
2
ответа
Неоднозначное поведение системного вызова kill в C
Я сделал эту программу, и вывод пока не имеет особого смысла для меня. Может кто-нибудь объяснить, что происходит? void handler1a(int x){ printf("A\n"); } int main(){ signal(SIGUSR1, handler1a); int p = fork(); if(p==0) { sleep(5); printf("L \n"); }…
14 фев '19 в 09:43
1
ответ
Как правильно использовать сигналы в C?
Я должен написать программу под названием BuzzOff.c. Моя программа должна принимать 3 целочисленных аргумента как таковые: $ BuzzOff 10 99999 2 Моя программа должна спокойно считать от 0 до 0,001 приращений и сохранять промежуточный итог полученного…
05 ноя '13 в 23:58
1
ответ
Android NDK: обрабатывать SIGSEGV, вызванные любым потоком со стороны Java
Рассмотрим этот сценарий: Есть Android-приложение, которое делает вещи, которые могут быть в разных потоках. Некоторые из них могут вызвать нарушения сегментации (SIGSEGV). Я хочу иметь возможность отлавливать все нарушения, независимо от потока, ко…
14 окт '15 в 22:53
2
ответа
Создать обработчик сигнала для одного потока
Мне интересно, если sigaction создаст обработчик сигнала для вызывающего потока или всего процесса. Если он разблокирует сигнал и создаст обработчик сигнала для всего процесса, то как я могу убедиться, что только один поток будет использовать обрабо…
19 ноя '13 в 01:51
3
ответа
Есть ли способ проверить, нахожусь ли я в обработчике сигналов?
Мне приходится работать над модулем регистрации, который можно вызывать из разных мест большого проекта. У меня проблема в том, что иногда модуль может вызываться из кода, выполняемого внутри обработчика сигнала. Обычно модуль регистрации включает д…
05 мар '10 в 21:06
4
ответа
Python:Django: обработчик сигналов и основной поток
Я создаю приложение django, которое зависит от модуля python, в котором реализован обработчик сигнала SIGINT. Предполагая, что я не могу изменить модуль, от которого я зависим, как я могу обойти ошибку "сигнал работает только в основном потоке", кот…
20 дек '11 в 08:51
2
ответа
С каким сигналом мне следует обращаться и как?
Где в моем коде я должен "ждать, пока дети не закончат"? У меня есть программа на C, похожая на пользовательскую оболочку. Теперь у меня есть встроенная функция checkEnv который может печатать отсортированные переменные окружения. Так что я могу зап…
13 апр '16 в 17:23
2
ответа
Многопоточная обработка сигналов в C на Linux
Общий вопрос: что не так с моим кодом, чтобы все генерируемые сигналы не перехватывались двумя потоками обработчика? Неудачные детали моего плохого вопроса: я должен написать некоторый код с основной функцией, 3 потока генератора для генерации сигна…
01 ноя '16 в 04:04
2
ответа
Обработчик сигнала для завершения основной программы и всех вилок, когда прибывает двойной SIGINT
Я действительно не понял, как работают обработчики сигналов, особенно с вилками. Мне нужно сделать это упражнение, но я не смог заставить его работать должным образом. Моя основная программа делает 5 вилок, каждая вилка печатает просто 10 сообщений …
19 июл '14 в 12:37
1
ответ
Асинхронная последовательная связь в неканоническом (raw) режиме и генерация SIGIO в linux/osx
Для начала у меня проблемы с тем, чтобы мое последовательное устройство генерировало SIGIO, когда данные готовы к чтению. Я пытаюсь написать простой последовательный интерфейс для связи с микро с помощью адаптера USB-последовательный порт. Я хотел б…
13 апр '12 в 02:04
1
ответ
Unix/Linux: обработчик SIGCONT/SIGTSTP
В настоящее время я пишу программу с использованием сигналов, и у меня есть эта проблема: Как я могу изменить состояние исполняемой программы на остановлено / запущено без отправки SIGSTOP/SIGCONT? Я понимаю, что мне нужно использовать: void add_to_…
07 июн '11 в 08:43
1
ответ
Восстановление настроек терминала (termios) в обработчике сигналов
В коде, который изменяет настройки терминала (он встраивает python, который, в свою очередь, использует некоторые модули управления терминалами), измененное состояние сохраняется после того, как я завершаю работу через Ctrl-\ отправляя SIGQUIT проце…
21 окт '16 в 05:53
0
ответов
Обрабатывать сигналы в Android
Поддерживает ли Android обработку сигналов, т.е. Signal.handle( ... ) тип? Можете ли вы предложить ссылку, которая объясняет, как это сделать?
17 мар '14 в 15:15
1
ответ
C: Обработка сигналов и семафоры
Я пытаюсь лучше понять семафоры и весь этот джаз, и для этого я программирую сервер и клиентов, которые общаются, используя общую память и семафоры. Это работает довольно хорошо и все, но я не уверен, что понимаю, как правильно работает обработка си…
21 янв '16 в 18:17
1
ответ
Python - обрабатывать CTRL+D с помощью "сигнала импорта"
В настоящее время я могу обрабатывать CTRL+C через: def hand_inter(signum, frame): print 'hey, nice job.' signal.signal(signal.SIGINT, hand_inter) Однако я также должен обрабатывать CTRL+D, но не могу найти соответствующий вызов signal.CTRL+D для si…
07 мар '14 в 17:48