2015-12-24 5 views
-3

Мой вопрос в том, что как сигналы обрабатываются в Unix. Они обрабатываются путем создания новой темы или есть что-то еще? Также каков поток выполнения программы при поступлении сигнала?Как обрабатываются сигналы в Unix?

То, что я подразумеваю под потоком исполнения, это то, что, скажем, я посредине функции X и звонят на другую функцию Y. Поэтому компилятор останавливает выполнение функции X и переходит в функцию Y. После завершения функции Y компилятор снова продолжает выполнение программы X, откуда она была приостановлена. Точно так же я хотел бы знать, как программа выполняется, когда поступает сигнал.

Я использую settimer в своей программе для выполнения функции. Но когда я опускаю interval value, функция вызывается снова, и предыдущее исполнение отменяется, хотя я не уверен в этом. Код слишком грязный и длинный, поэтому я не разместил его здесь.

Спасибо, что посмотрели на него ..!

+2

Ваш вопрос слишком общий для stackoverflow. Google для учебника по сигналам unix. Вот один из них: http://titania.ctie.monash.edu.au/signals/ –

ответ

2

Операционная система останавливает поток, принимающий сигнал, и запускает обработчик сигнала. Когда он возвращает исходный поток, перезагружается, где он был.

Если обработчик сигнала уже работает, когда поступает другой сигнал, действие настраивается в вызове sigaction.

Смежные вопросы