私は整数値を返すCプログラムを持っています。私は全体の整数が表示されないのはなぜLinux/bashのプログラム戻り値の有効範囲は何ですか?
> ./prog.e
> echo $?
1
- - 私は、シェルプロンプトからの戻り値を調べるとき、私は値モジュロ256
/* prog.c */ int main(...) { return 257; }
を得ることを見つけるために驚きました?
- この動作は文書化されていますか?
- シェルに32ビット値全体を取得するにはどうすればよいですか?プログラムが終了すると、それが終了ステータスを使用して、親プロセスに終了の原因に関する情報の少量を返すことができ
戻り値は定義上のエラーコードです。戻り値を使用して他の数値と通信することはできません。成功(0)またはエラー(非ゼロ)を示すために必ず使用されます。 *成功*実行中に何らかの種類のカウントまたはその他の非ゼロ数値を出力することを意図している場合は、STDOUTに書き込む必要があります。 – meagar
ありがとう、@マガール。私は、私が作業している非生産コードの一時的なハックとして、私の組み込みコード開発を検証するためにこれを必要とします。あなたが言及した警告を理解していますが、それでも私の質問には答えません。 – ysap
それは答えではなくコメントなのです。コメントは*疑問に答えるものではありません。一時的なハックかそうでなければ、あなたはあなたが戻ってきた番号を明かすことはできません。それをSTDOUTに出力する必要があります。 – meagar