siglongjmp関数は,同じプロセス内で,対応する
sigjmp_buf引数を使って行われた直前の
sigsetjmp呼び出しによって保存された環境を復元します。
すべてのアクセス可能なオブジェクトは,
siglongjmpの呼び出し時に値を持ちます。唯一の例外として,
sigsetjmp呼び出しと
siglongjmp呼び出しの間に変更された自動記憶時間のオブジェクトの値は不定です。
siglongjmpは通常の関数呼び出しとリターン・メカニズムをバイパスするので,割り込み,シグナル,およびそれらの関連する関数の実行中も正しく動作します。ただし,
siglongjmpをネストしたシグナル・ハンドラ (たとえば,別のシグナルの処理中に生成したシグナルの結果として呼び出された関数) から呼び出した場合の動作は未定義です。
siglongjmp関数は,ゼロ以外の savemask 引数で
sigsetjmpを呼び出して env 引数を初期化した場合にのみ,保存されていたシグナル・マスクを復元します。
siglongjmpの完了後,プログラムは,対応する
sigsetjmpの呼び出しが value によって指定された値で返ったかのように実行を続けます。
siglongjmp関数は,
sigsetjmpに 0 (ゼロ) を返させることはできません。 value が 0 ならば,
sigsetjmpは 1 を返します。
sigsetjmpも参照してください。