前へ | 次へ | 目次 | 索引 |
表 4-1 は, HP C Run-Time Library (RTL) で提供されるすべてのエラー処理関数とシグナル処理関数を示しています。各関数の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)』「リファレンス・セクション」を参照してください。
関数 | 説明 |
---|---|
abort | プログラムの実行を終了するシグナル SIGABRT を送出する。 |
assert | 診断情報をプログラムに渡す。 |
atexit | プログラムの終了時に呼び出す関数を登録する。 |
exit, _exit | 現在のプログラムを終了する。 |
perror | 現在の errno の値を記述する短いエラー・メッセージを stderr に出力する。 |
strerror | errno のエラー・コードをエラー・メッセージ文字列に変換する。 |
alarm | 引数によって示される秒数が経過した後,シグナル SIGALARM を起動プロセスに送信する。 |
gsignal | 指定されたソフトウェア・シグナルを生成する。 |
kill | process ID によって指定されるプロセスに SIGKILL シグナルを送信する。 |
longjmp | 正常終了せずに,制御をネストした一連の関数呼び出しから定義済みポイントに返す。 |
pause | シグナルを受信するまでプロセスを待機させる。 |
raise | 指定されたシグナルを生成する。 |
setjmp | 正常終了せずに,ネストした一連の関数呼び出しから後で制御を転送するためにコンテキストを設定する。 |
sigaction | シグナルの配布時に実行する動作を指定する。 |
sigaddset | 指定された個々のシグナルを追加する。 |
sigblock | 引数に指定されたシグナルを,配布がブロックされている現在のシグナル・セットに追加する。 |
sigdelset | 指定された個々のシグナルを削除する。 |
sigemptyset | すべてのシグナルを除外するようにシグナル・セットを初期化する。 |
sigfillset | すべてのシグナルを含むようにシグナル・セットを初期化する。 |
sighold | 指定されたシグナルを,呼び出し元プロセスのシグナル・マスクに追加する。 |
sigignore | 指定されたシグナルの処理方法として,SIG_IGN を設定する。 |
sigismember | 指定されたシグナルがシグナル・セットのメンバであるかどうか判定する。 |
siglongjmp | シグナルを処理して非ローカル・ジャンプを実行する。 |
sigmask | 指定されたシグナル番号に対してマスクを作成する。 |
signal | シグナルを検出するか,または無視する。 |
sigpause | 指定されたシグナル・セットをブロックし,ブロックされていないシグナルを待機する。 |
sigpending | 保留状態のシグナルを調べる。 |
sigprocmask | 現在のシグナル・マスクを設定する。 |
sigrelse | 指定されたシグナルを,呼び出し元プロセスのシグナル・マスクから削除する。 |
sigsetjmp | 非ローカル・ジャンプのジャンプ・ポイントを設定する。 |
sigsetmask | 配布がブロックされるシグナルを設定する。 |
sigstack | シグナルを処理する代替スタックを定義する。 |
sigsuspend | ブロックされているシグナル・セットを個別に変更し,シグナルを待機する。 |
sigtimedwait | 呼び出し元スレッドを一時停止し,シグナル通知が到着するのを待機する。 |
sigvec | 特定のシグナルのハンドラを永久的に割り当てる。 |
sigwait | 呼び出し元スレッドを一時停止し,シグナル通知が到着するのを待機する。 |
sigwaitinfo | 呼び出し元スレッドを一時停止し,シグナル通知が到着するのを待機する。 |
ssignal | 特定のシグナルが発生したときに実行する動作を指定することができる。 |
VAXC$ESTABLISH | HP C RTL の例外処理と互換性のある方法でアプリケーション例外ハンドラを設定する。 |
HP C RTL 関数の呼び出しでエラーが発生した場合,その関数は異常終了状態を返します。多くの RTL ルーチンは,外部変数 errnoを,障害の理由を示す値に設定します。エラーが発生した場合は,戻り値を常に確認する必要があります。
<errno.h>ヘッダ・ファイルには errnoが宣言され,可能なエラー・コードがシンボルで定義されています。 <errno.h>ヘッダ・ファイルをプログラムに取り込むことにより, HP C RTL 関数呼び出しの後,特定のエラー・コードを確認することができます。
プログラムの起動時に, errnoの値は 0 です。 errnoの値は,多くの HP C RTL 関数によって 0 以外の値に設定される可能性があります。 errnoの値が HP C RTL 関数によって 0 にリセットされることはないため,この値を正しく使用するには, HP C RTL 関数を呼び出し,異常終了状態が返された後で使用するようにしなければなりません。 表 4-2 は, HP C RTL が errnoに代入する可能性のあるシンボル値を示しています。
シンボル定数 | 説明 |
---|---|
E2BIG | 引数リストが長すぎる。 |
EACCES | アクセス許可が拒否された。 |
EADDRINUSE | 指定されたアドレスはすでに使用されている。 |
EADDRNOTAVAIL | 要求されたアドレスを割り当てることができない。 |
EAFNOSUPPORT | サポートされていないアドレス・ファミリ。 |
EAGAIN | これ以上プロセスは存在しない。 |
EALIGN | アライメント・エラー。 |
EALREADY | 操作はすでに実行中である。 |
EBADF | ファイル番号が不正である。 |
EBADCAT | メッセージ・カタログの形式が不正である。 |
EBADMSG | 壊れたメッセージが検出された。 |
EBUSY | ビジー状態のデバイスをマウントした。 |
ECANCELED | 操作がキャンセルされた。 |
ECHILD | 子は存在しない。 |
ECONNABORTED | ソフトウェアで接続アボートが発生した。 |
ECONNREFUSED | 接続が拒否された。 |
ECONNRESET | 接続相手から接続がリセットされた。 |
EDEADLK | リソース・デッドロックが回避された。 |
EDESTADDRREQ | 宛先アドレスが必要である。 |
EDOM | 算術演算引数。 |
EDQUOT | ディスク・クォータ超過。 |
EEXIST | ファイルはすでに存在する。 |
EFAIL | 操作を開始できない。 |
EFAULT | アドレスが不正である。 |
EFBIG | ファイルが大きすぎる。 |
EFTYPE | ファイル・タイプに対して不適切な操作が実行された。 |
EHOSTDOWN | ホストがダウンしている。 |
EHOSTUNREACH | ホストにルーティングできない。 |
EIDRM | 識別子が削除された。 |
EILSEQ | バイト・シーケンスが不正である。 |
EINPROGRESS | 操作が現在実行中である。 |
EINPROG | 非同期操作が現在実行中である。 |
EINTR | システム呼び出しが中断された。 |
EINVAL | 引数が不正である。 |
EIO | I/O エラー。 |
EISCONN | ソケットはすでに接続されている。 |
EISDIR | ディレクトリである。 |
ELOOP | シンボリック・リンクのレベルが多すぎる。 |
EMFILE | オープンされているファイルの数が多すぎる。 |
EMLINK | リンクの数が多すぎる。 |
EMSGSIZE | メッセージが長すぎる。 |
ENAMETOOLONG | ファイル名が長すぎる。 |
ENETDOWN | ネットワークがダウンしている。 |
ENETRESET | リセット時にネットワークで接続が切断された。 |
ENETUNREACH | ネットワークに到達できない。 |
ENFILE | ファイル・テーブル・オーバフロー。 |
ENOBUFS | 使用可能なバッファ領域が残っていない。 |
ENODEV | このようなデバイスは存在しない。 |
ENOENT | このようなファイルまたはディレクトリは存在しない。 |
ENOEXEC | Exec フォーマット・エラー。 |
ENOLCK | 使用可能なロックが存在しない。 |
ENOMEM | 十分なコアがない。 |
ENOMSG | 適切なタイプのメッセージがない。 |
ENOPROTOOPT | プロトコルは使用できない。 |
ENOSPC | デバイスに領域が残されていない。 |
ENOSYS | この関数はインプリメントされていない。 |
ENOTBLK | ブロック・デバイスが必要である。 |
ENOTCONN | ソケットが接続されていない。 |
ENOTDIR | ディレクトリでない。 |
ENOTEMPTY | ディレクトリが空でない。 |
ENOTSOCK | ソケット以外のものに対してソケット操作を実行した。 |
ENOTSUP | この関数はインプリメントされていない。 |
ENOTTY | タイプライタでない。 |
ENWAIT | 待機中のプロセスは存在しない。 |
ENXIO | このようなデバイスまたはアドレスは存在しない。 |
EOPNOTSUPP | ソケットでこの操作はサポートされていない。 |
EPERM | オーナでない。 |
EPFNOSUPPORT | サポートされていないプロトコル・ファミリ。 |
EPIPE | パイプが壊れている。 |
EPROCLIM | プロセスの数が多すぎる。 |
EPROTONOSUPPORT | プロトコルがサポートされていない。 |
EPROTOTYPE | ソケットに対してプロトコルのタイプが不正である。 |
ERANGE | 結果が大きすぎる。 |
EREMOTE | パス内のリモートのレベルが多すぎる。 |
EROFS | 読み込み専用ファイル・システム。 |
ESHUTDOWN | ソケット・シャットダウンの後で送信することはできない。 |
ESOCKTNOSUPPORT | サポートされていないソケット・タイプ。 |
ESPIPE | 不正なシーク。 |
ESRCH | このようなプロセスは存在しない。 |
ESTALE | 無効な NFS ファイル・ハンドル。 |
ETIMEDOUT | 接続時間切れ。 |
ETOOMANYREFS | 参照の数が多すぎる,分割できない。 |
ETXTBSY | テキスト・ファイルが使用中である。 |
EUSERS | ユーザの数が多すぎる。 |
EVMSERR | OpenVMS 固有の変換不可能なエラー・コード。 |
EWOULDBLOCK | I/O 操作はチャネルをブロックする。 |
EXDEV | クロスデバイス・リンク。 |
perror関数または strerror関数を使用すると,エラー・コードを, UNIX システムで使用されているメッセージに類似したメッセージに変換できます。 errnoが EVMSERR に設定されている場合は, perrorはエラー・コードを変換することができず,次のメッセージを印刷し,その後,値に対応する OpenVMS エラー・メッセージを印刷します。
%s:nontranslatable vms error code: xxxxxx vms message: |
このメッセージで,%s は perrorに指定する文字列です。 xxxxxx は OpenVMS 条件値です。
errnoが EVMSERR に設定されている場合は, <errno.h>ヘッダ・ファイルに宣言されている vaxc$errno変数で OpenVMS 条件値を使用できます。 vaxc$errno変数は, errnoが EVMSERR に設定されている場合にだけ,有効な値を持つことが保証されます。 errnoが EVMSERR 以外の値に設定されている場合は, vaxc$errnoの値は未定義です。
エラー・コードを変換するための別の方法については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)』「リファレンス・セクション」の strerror関数を参照してください。
前へ | 次へ | 目次 | 索引 |