SYSEXITS(3) | FreeBSD Library Functions Manual | SYSEXITS(3) |
名称
sysexits — プログラムの望ましい終了コード書式
#include < sysexits.h>解説
style(9) によれば、プログラムを終了するときに失敗の状態を示すために任意の値で exit(3) を呼び出すのはよい方法ではありません。代りに、 sysexits からの事前に定義された終了コードを使うべきであり、そうすればプロセスの呼び出し者はソースコードを調べなくても失敗クラスをおおよそ推定できます。無事に終了したことは、常にステータス 0 または EX_OK によって示されます。任意のプログラムが既に返している可能性のあるその他の終了ステータスと衝突する可能性を減らすために、エラー番号は EX__BASE から始まります。コードの意味は、おおよそ次に示す通りです。
- EX_USAGE (64)
- コマンドが不正に使用されました。例えば、引数の数の誤り、誤ったフラグ、パラメータの誤った構文など。
- EX_DATAERR (65)
- 入力データがどこかで不正です。これは、ユーザデータのみに使用され、システムファイルには使用すべきではありません。
- EX_NOINPUT (66)
- 入力ファイル (システムファイルではなく) が存在しないか、または読み込み可能ではありません。これには、メーラの“No message”のようなエラーも含まれます (このようなエラーを捕えたいなら)。
- EX_NOUSER (67)
- 指定されたユーザが存在しません。これは、メールアドレスやリモートログインに使用されるかもしれません。
- EX_NOHOST (68)
- 指定されたホストが存在しません。これは、メールアドレスやネットワークリクエストに使われます。
- EX_UNAVAILABLE (69)
- そのサービスは利用できません。これは、サポートプログラムやファイルが存在しない場合に起きます。これは、また、理由は知らないけれども、何かやりたいことができないときに、雑多なメッセージとして使うことができます。
- EX_SOFTWARE (70)
- 内部ソフトウェアエラーが検出されました。これは、できるだけオペレーティングシステム関連ではないエラーに限るべきです。
- EX_OSERR (71)
- オペレーティングシステムエラーが検出されました。これは、“cannot fork” (フォークできない) “cannot create pipe” (パイプを作成できない) などのようなエラーに使うよう意図されています。これには、 passwd ファイルに存在しないユーザに返される getuid ようなものも含まれます。
- EX_OSFILE (72)
- システムファイルのどれか (例えば、 /etc/passwd、 /var/run/utx.active など) が存在しないか、オープンできないか、または何らかのエラー (例えば、構文エラー) があります。
- EX_CANTCREAT (73)
- (ユーザ指定の) 出力ファイルが作成できません。
- EX_IOERR (74)
- いずれかのファイルで I/O 操作中にエラーが起きました。
- EX_TEMPFAIL (75)
- 一時的な失敗で、本当のエラーではないことを示します。 sendmail では、これはメーラが (例えば) 接続を確立できず、リクエストは後で再試行すべきであることを意味します。
- EX_PROTOCOL (76)
- リモートシステムがプロトコル交換の間に“not possible” (可能でない) 何かを返しました。
- EX_NOPERM (77)
- 操作を実行するための十分な許可を持っていません。これは、 EX_NOINPUT または EX_CANTCREAT を使用するべきファイルシステムの問題を対象にしていません。より高いレベルの許可を対象にしています。
- EX_CONFIG (78)
- 何かコンフィギュレーションされていないもの、またはコンフィギュレーションが間違っている状態が見つかった。
シンボルに対応する数値は参照を容易にするために括弧内に示しています。
歴史
sysexits ファイルは、 4.3BSD 以降のどこかで登場しました。作者
このマニュアルページは、 < sysexits.h> の中のコメントに従って によって書かれました。バグ
適切な終了値の選択はしばしばあいまいです。January 21, 2010 | FreeBSD |