日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトル
目次
まえがき
リファレンス・セクション
   ≫ライブラリ関数一覧
索引
PDF
OpenVMS ホーム

HP OpenVMS
HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)


目次 索引




非ローカル goto のジャンプ・ポイントを設定します。

形式

#include <setjmp.h>

init sigsetjmp (sigjmp_buf env, int savemask);


引数



env

sigjmp_buf構造体のアドレス。

savemask

現在のシグナル・マスクを保存する必要があるかどうかを指定する整数値。

説明

sigsetjmp関数は,呼び出し元環境を,後に siglongjmp関数で使用できるように env 引数に保存します。

savemask の値が 0 (ゼロ) でない場合, sigsetjmpはプロセスの現在のシグナル・マスクも,呼び出し元環境の一部として保存します。

siglongjmpも参照してください。




制限事項

OpenVMS 条件ハンドラから longjmp関数を呼び出すことはできません。ただし,以下のネスト制約の範囲内で, HP C RTL がサポートしている任意のシグナルに対して確立されたシグナル・ハンドラから longjmpを呼び出すことができます。

  • longjmp関数は,ネストしたシグナル・ハンドラから呼び出された場合には動作しない。他のシグナル・ハンドラ内で生成された例外の結果として実行されたシグナル・ハンドラから呼び出された longjmp関数の結果は未定義である。

  • 対応する longjmpを,シグナルの処理が完了する前に発行したい場合を除いて,シグナル・ハンドラから sigsetjmp関数を呼び出してはならない。

  • 終了ハンドラ ( atexitまたは SYS$DCLEXH で設定) の中から longjmp関数を呼び出してはならない。終了ハンドラはイメージのティアダウンの後に呼び出されるので, longjmpのデスティネーション・アドレスは存在しなくなっている。

  • シグナル・ハンドラの中から,メインの実行スレッドに戻るために longjmpを呼び出すと,プログラムの状態の一貫性が失われることがある。副作用として,I/O が実行できなくなったり, UNIX シグナルを受信できなくなったりする可能性がある。代わりに siglongjmpを使用すること。


戻り値

0 成功を示します。
ゼロ以外 siglongjmp 関数の呼び出しが行われます。


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.