在这种情况下,为什么在计算文件大小时会额外增加1个字节?

dim*_*tar 11 c linux windows size

在通过GUI(alt + enter)以及终端(ls -l)在Ubuntu 12.10上创建文本文件后,我做了以下观察.

  • 当文件为空时:文件大小= 0字节.
  • 当一个字符:文件大小= 2个字节.
  • 当两个字符:文件大小= 3个字节.

当文件只包含一个字符时,为什么还要增加1个字节,我知道这不是因为End-Of-File,因为当我编写ac程序时,当它到达End-Of-File时循环终止并且它给了我相同的结果,所以显然这不算数,那又是什么呢?

但是在Windows上,当文件包含一个字符时,文件大小只有1个字节,这是正常的.这些东西背后有什么东西?

Omk*_*ant 14

这是由于文本编辑器你得到这个.你必须按下额外的终止字符,如换行符.

如果您想要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
Run Code Online (Sandbox Code Playgroud)

您将获得完全1字节文件大小.

试试吧.(它正在我的系统Ubuntu 11.04上工作)


Mar*_*hen 7

最有可能的额外字符是Unix/Linux文本文件中每行末尾的换行符.您应该能够使用命令'od -c file'查看该char.