SIGRETURN(2)

ИМЯ
sigreturn - возвращается из обработчика сигнала и очищает кадр стека

ОБЗОР
int sigreturn(unsigned long __unused);

ОПИСАНИЕ
При создании кадра стека для обработчика сигнала ядро Linux посылает в этот стек вызов функции sigreturn() таким образом, чтобы при возвращении вызова из обработчика право управления было передано sigreturn(). Вызов sigreturn() очищает всё что накопилось — изменяет маску сигнала процесса, переключает стеки (см. sigaltstack(2))— порядок вызова обработчиков сигнала: он восстанавливает маску сигнала процесса, переключает стеки и восстанавливает контекст процесса (регистры, флаги процессора), так что процесс непосредственно возобновляет исполнение с точки где был прерван сигналом.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
sigreturn() не возвращает значений.

ФАЙЛЫ
/usr/src/linux/arch/i386/kernel/signal.c
/usr/src/linux/arch/alpha/kernel/entry.S

СООТВЕТСТВИЕ СТАНДАРТАМ
Вызов sigreturn() есть только в Linux. Не рекомендуется использовать ее в программах, переносимых в другие системы.

ЗАМЕЧАНИЯ
Вызов sigreturn() используется ядром для реализации обработчиков сигнала. Его ни в коем случае нельзя вызывать непосредственно. Более того, значение и способ использования аргумента __unused зависит от архитектуры.

СМОТРИТЕ ТАКЖЕ
kill(2), sigaltstack(2), signal(2), signal(7)