SIGRETURN(2) FreeBSD システムコールマニュアル SIGRETURN(2)
名称
sigreturn − シグナルから戻る |
ライブラリ
標準 C ライブラリ (libc, −lc) |
書式
#include <signal.h> int |
sigreturn(ucontext_t *scp); |
解説 |
sigreturn() システムコールにより、マスクの解除、スタックの切り替え、シグ ナルコンテキストからの復帰を、不可分に実行可能です。プロセスのシグナルマ スクとスタックステータスは、 scp で指されるコンテキスト構造体から復元され ます。システムコールは戻りません。ユーザのスタックポインタ、フレームポイ ンタ、引数ポインタ、プロセッサステータスロングワードは、コンテキストから 復元されます。実行は、指定された pc で再開されます。このシステムコール は、前に実行していたプログラムにシグナルから戻る場合に、トランポリンコー ドと longjmp(3) で使用されます。 |
注
このシステムコールは 4.2BSD では使用できないので、下位互換性が必要な場合 は使用しないでください。 |
戻り値
処理が正常に完了すると、このシステムコールは戻りません。そうでない場合は -1 が返され、エラーを示すために errno が設定されます |
エラー
以下のうち 1 つが発生すると、 sigreturn() システムコールは処理を失敗し、 プロセスコンテキストは変更されずに残ります。 |
[EFAULT]
scp 引数が、プロセスアドレス空間の有効な部分ではないメ モリを指しています。 [EINVAL] 関連項目 |
歴史
sigreturn() システムコールは、 4.3BSD で登場しました。 FreeBSD 10.0 June 4, 1993 FreeBSD 10.0 |