SIGRETURN(2) — UNIX Programmer’s Manual
名称
sigreturn − シグナルからリターンする
形式
#include <signal.h>
structsigcontext {
intsc_onstack;
intsc_mask;
intsc_sp;
intsc_fp;
intsc_ap;
intsc_pc;
intsc_ps;
};
sigreturn(scp);
struct sigcontext ∗scp;
解説
sigreturn を 使用することによって、 ユーザは、 一時的にマスクを 解除し、 スタックを 切り替え、 シグナルコンテクストから制御を 戻すことができます。 プロセスのシグナルマスクおよびスタックステータスは、 そのコンテクストから復元されます。 このシステムコールは、 リターンしません。 そのユーザのスタックポインタ、 フレームポインタ、 引数ポインタ、 およびプロセッサのステータスロングワードは、 コンテクストから復元されます。 実行は、 指定されたpcになると再開されます。 このシステムコールは、 トランポリンコードによって使用され、 また、 シグナルから以前に実行されていたプログラムへリターンするときに longjmp(3) によって使用されます。
注意事項
このシステムコールは、 NEWS-OS 2.X(4.2BSD)では使用できません。 ゆえに、 古いバージョンとの互換性が必要とされる場合には、 このコールを 使用すべきではありません。
リターン値
成功した場合には、 このコールはリターンしません。 失敗した場合には、 値 −1 が返され、 errno がエラーを 示すようにセットされます。
エラー
次の項目の1つが発生した場合には、 sigreturn は失敗し、 プロセスのコンテクストは変更されません。
[EFAULT] scp が、 プロセスのアドレススペースの有効な部分ではないメモリを 指し示している。
[EINVAL] プロセスステータスロングワードが無効であり、 プロセスの特権レベルを 不正に上げる可能性がある。
関連事項
NEWS-OSRelease 3.3