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), restart_syscall(2), sigaltstack(2), signal(2), signal(7)

この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。