Scroll to navigation

SIGRETURN(2) Руководство программиста Linux 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)

2008-06-26 Linux