こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

回答受付中の質問

UNIX リターンコード

UNIXを使っていて、リターンコードのことがよく分かりません。
「0」が正常終了、「1」がエラー以外に、「4」や「8」や「16」など
どのような時に使うのでしょうか。
また、これらの数字以外にもあったり、数字自体どうやって決まっているのでしょうか。

分かるか方いたら教えてもらいたいです。
よろしくお願いします。

投稿日時 - 2018-05-09 15:17:07

QNo.9496746

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

どうやって決まるのかは他の回答者が回答されていますから
私からはプロセスの終了コードにできる値の範囲についてを。
プロセスの終了コードの範囲は、0~255です。
負数や256以上の値は終了コードにはできません。

投稿日時 - 2018-05-09 22:02:32

ANo.3

プログラムによって意味づけが異なります。
リターンコードで処理結果の意味を伝える場合だと、正常終了でも非ゼロの値となります。
例えば、grepコマンドだと、
0 文字列が見つかった (正常)
1 文字列が見つからなかった(正常)
2 何らかのエラー

また、exprコマンドだと、
0 処理結果がnullでも0でもない(正常)
1 処理結果がnullまたは0(正常)(例えば「expr 2 - 2」の場合)
2 構文エラー
3 その他エラー

数字は、プログラムを書く人が、利用者に便利なようにという観点で決めます。

投稿日時 - 2018-05-09 21:31:14

ANo.2

>UNIXを使っていて、リターンコードのことがよく分かりません。

Unixの標準的なコマンドの事を言っているのか、アプリケーションを含んて聞いているのか分かりませんが、アプリの場合

ユーザにエラーの程度を知らせる
0:正常終了
4:ワーニング(軽微なエラーが有ったけど処理できた)
8:エラー(エラーが有ったので処理結果を保証できない)
16:重要なエラー(全く処理できなかった)

ユーザにエラー内容を知らせる
100:ファイルのI/Oエラーが発生した
200:ネットワークエラーが発生した
300:DBのアクセスでエラーが発生した
999:上記以外のエラー

複数のエラーが同時に発生する可能性が有る場合、リターンコードを2進数に変換するとビット毎に意味が有る事が解る様する事もある

投稿日時 - 2018-05-09 20:17:14

ANo.1

コマンドによって意味は異なります。manで確認してください。

投稿日時 - 2018-05-09 15:46:43

あなたにオススメの質問