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

时间:2012-12-05 06:27:10

标签: c linux windows size

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

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

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

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

2 个答案:

答案 0 :(得分:14)

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

如果您希望文件中包含1个字符的1 byte大小。

在你的终端上做这样的事。

#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上工作)

答案 1 :(得分:7)

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

查看该字符