SIGRETURN(2) Linux Programmer’s Manual 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) Linux 2008-06-26 SIGRETURN(2)
SIGRETURN(2) Linux Programmer’s Manual SIGRETURN(2) NAME sigreturn - return from signal handler and cleanup stack frame SYNOPSIS int sigreturn(unsigned long __unused); DESCRIPTION When the Linux kernel creates the stack frame for a signal handler, a call to sigreturn() is inserted into the stack frame so that upon return from the signal handler, sigreturn() will be called. This sigreturn() call undoes everything that was done—changing the pro- cess’s signal mask, switching stacks (see sigaltstack(2))—in order to invoke the signal handler: it restores the process’s signal mask, switches stacks, and restores the process’s context (registers, proces- sor flags), so that the process directly resumes execution at the point where it was interrupted by the signal. RETURN VALUE sigreturn() never returns. FILES /usr/src/linux/arch/i386/kernel/signal.c /usr/src/linux/arch/alpha/kernel/entry.S CONFORMING TO sigreturn() is specific to Linux and should not be used in programs intended to be portable. NOTES The sigreturn() call is used by the kernel to implement signal han- dlers. It should never be called directly. Better yet, the specific use of the __unused argument varies depending on the architecture. SEE ALSO kill(2), sigaltstack(2), signal(2), signal(7) COLOPHON This page is part of release 3.22 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. Linux 2008-06-26 SIGRETURN(2)
Copyright(C) linux-cmd.com All Rights Reserved. Author Takayuki Yukawa