スポンサーリンク

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]
プロセスステータスロングワードが正しくないか、プロセス の権限レベルを不適切に上げています。

関連項目

sigvec(2), setjmp(3), ucontext(3)

歴史

sigreturn() システムコールは、 4.3BSD で登場しました。

FreeBSD 10.0 June 4, 1993 FreeBSD 10.0

スポンサーリンク