私は次の簡単なコードを持っています:
ofstream output("test");
output << 'a';
ファイルの8進ダンプを実行すると、次のようになります。
0000000 000141
0000001
000141(ベース8)は8ビット幅で、0000001はおそらくEOFであることがわかります。すべての0の最初のバイトは何ですか?なぜそこにあるのですか?nullはASCIIですが、その目的は何ですか?
私は次の簡単なコードを持っています:
ofstream output("test");
output << 'a';
ファイルの8進ダンプを実行すると、次のようになります。
0000000 000141
0000001
000141(ベース8)は8ビット幅で、0000001はおそらくEOFであることがわかります。すべての0の最初のバイトは何ですか?なぜそこにあるのですか?nullはASCIIですが、その目的は何ですか?
これは C++ とは何の関係もありません (「a」が含まれる長さ 1 のファイルがあることを示すソース コードを除く)。 8 進出力を使用した Linux ツール hd/hexdump の出力。
詳細については、このウィキペディアの記事を参照してください。
編集:ああ、質問のタイトルを逃しました。つまり、hd の 8 進数の「兄弟」であるodです。
ジェームズが言ったように、最初の列はファイルオフセット(7桁、16進数)を示しています。ファイルが長くなると、より明白になります。