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),
restart_syscall(2),
sigaltstack(2),
signal(2),
signal(7)
この文書について¶
この man ページは Linux
man-pages
プロジェクトのリリース
3.65 の一部である。
プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man-pages/
に書かれている。