sigreturn(2) FreeBSD 一般コマンドマニュアル

sigreturn

前のページ 上に戻る 次のページ

sigreturn




書式

     #include <signal.h>

     struct  sigcontext {
             int     sc_onstack;             /* 復元するスタックステータス */
             int     sc_mask;                /* 復元するシグナルマスク */
             int     sc_esp;                 /* マシンステート */
             int     sc_ebp;
             int     sc_isp;
             int     sc_eip;
             int     sc_efl;
             int     sc_es;
             int     sc_ds;
             int     sc_cs;
             int     sc_ss;
             int     sc_edi;
             int     sc_esi;
             int     sc_ebx;
             int     sc_edx;
             int     sc_ecx;
             int     sc_eax;
     #  define sc_sp sc_esp
     #  define sc_fp sc_ebp
     #  define sc_pc sc_eip
     #  define sc_ps sc_efl
     };

     int
     sigreturn(struct sigcontext *scp);


解説

     sigreturn() によって、マスクの細かい設定解除、スタックのスイッチ、シグナ
     ルコンテキストからの復帰を行なえます。プロセスのシグナルマスクとスタック
     ステータスは、コンテキストから復元されます。システムコールは戻りません。
     ユーザのスタックポインタ、フレームポインタ、引数ポインタ、プロセッサステ
     ータスロングワードは、コンテキストから復元されます。実行は、指定された pc
     で再開されます。このシステムコールは、前に実行していたプログラムにシグナ
     ルから戻る場合に、トランポリンコードと longjmp(3) で使用します。


注釈

     このシステムコールは 4.2 BSD では使用できないので、下位互換性が必要な場合
     は使用しないでください。


戻り値

     処理が正常に完了すると、このシステムコールは戻りません。そうでない場合は
     -1 が返され、エラーを示すために errno が設定されます


エラー

     以下のうち 1 つが発生すると、 sigreturn() は処理を失敗し、プロセスコンテ
     キストは変更されずに残ります。


ABELNET VPSサービス