Unixの歴史:戻りコードは8進数ですか?

Unixの歴史:戻りコードは8進数ですか?

今日私をパニックにさせたのは次のとおりですgdb

Program exited with code 0146.

gdb戻りコードの印刷8進数;見つけた理由を調べてみると: http://comments.gmane.org/gmane.comp.gdb.devel/30363

しかし、それは特に満足のいく答えではありません。一部のクイックGoogle検索では履歴が公開されていないため、誰かがその背後に隠された物語を知ることができることを願っていました。

やや関連する質問です。 8進リターンコードをどのように確認しますか?たぶん古いマシンは常に戻りコードを印刷しますか?

$ printf %o\\n $?

とても恥ずかしいです:)

ベストアンサー1

8進表現は、最も一般的に使用される小さな値に対する終了コードの解釈を単純化します。この数字(バイト)が10進数で印刷されると、プロセスを中断した信号を見つけるために少しの計算が必要ですが、8進数ではそのまま読み取ることができます。

  • プロセスはステータス5で終了し、違いはありませんgdb05
  • 表示された信号#2よりも識別しやすいSIGINTControl+ C)があるため、プロセスは終了します。gdb0202130

また、終了ステータスはビットマスクにすることができます。この場合、8進数(少なくとも慣れているときは今より数十年前にもっと一般的でした)は、10進数でさえも、bithexに精神的に変換する方が簡単です。chmodファイル権限を表すために、8進数はまだ許可されています0750 = 111 101 000 = rwx r-x ---

おすすめ記事