2

私は次の簡単なコードを持っています:

ofstream output("test");
output << 'a';

ファイルの8進ダンプを実行すると、次のようになります。

0000000 000141
0000001

000141(ベース8)は8ビット幅で、0000001はおそらくEOFであることがわかります。すべての0の最初のバイトは何ですか?なぜそこにあるのですか?nullはASCIIですが、その目的は何ですか?

4

1 に答える 1

1

これは C++ とは何の関係もありません (「a」が含まれる長さ 1 のファイルがあることを示すソース コードを除く)。 8 進出力を使用した Linux ツール hd/hexdump の出力。

詳細については、このウィキペディアの記事を参照してください。

編集:ああ、質問のタイトルを逃しました。つまり、hd の 8 進数の「兄弟」であるodです。

ジェームズが言ったように、最初の列はファイルオフセット(7桁、16進数)を示しています。ファイルが長くなると、より明白になります。

于 2010-05-24T14:21:49.553 に答える