12

Ubuntu 12.10でGUI(alt + enter)およびターミナル(ls -l)でテキストファイルを作成した後、次の観察を行いました。

  • ファイルが空の場合: ファイル サイズ = 0 バイト。
  • 1文字の場合:ファイルサイズ=2バイト。
  • 2 文字の場合 : ファイルサイズ = 3 バイト。

ファイルに1文字しか含まれていないのに1バイト余分にあるのはなぜですか。これはEnd-Of-Fileが原因ではないことを知っています.acプログラムを書いたときに、End-Of-Fileに達したときにループが終了し、同じ結果が得られたからです。明らかにこれはカウントされません。では、それは何ですか?

しかし、Windows では、ファイルに 1 文字しか含まれていない場合、ファイル サイズはわずか 1 バイトで、正常でした。このすべてのものの背後にあるものは何ですか?

4

2 に答える 2

15

これは、テキスト エディターが原因です。改行などの追加の終了文字を押したに違いありません。

1 byteファイル内の1文字のサイズが必要な場合。

端末でこれを行うだけです。

#cat > file // create a file for input
x{CTRL+D}  // after inputting one character 'x' , press CTRL+D twice
           // one for terminating file and one for killing the cat process.

#ls -l  // list the file

正確に1バイトのファイルサイズが得られます。

それを試してみてください。(私のシステムUbuntu 11.04で動作しています)

于 2012-12-05T06:34:33.483 に答える
7

ほとんどの場合、余分な文字は、Unix/Linux テキスト ファイルの各行の末尾にある改行文字です。コマンド「od -c file」を使用して、その文字を確認できるはずです。

于 2012-12-05T06:31:09.050 に答える