C 在这种情况下,为什么在计算文件大小时额外增加1字节?
我在Ubuntu12.10上通过GUI(alt+enter)和终端(ls-l)创建了一个文本文件后,做了以下观察C 在这种情况下,为什么在计算文件大小时额外增加1字节?,c,linux,windows,size,C,Linux,Windows,Size,我在Ubuntu12.10上通过GUI(alt+enter)和终端(ls-l)创建了一个文本文件后,做了以下观察 文件为空时:文件大小=0字节 当一个字符:文件大小=2字节时 两个字符时:文件大小=3字节 为什么文件只包含一个字符时会额外增加1字节,我知道这不是因为文件的结尾,因为当我编写一个c程序时,循环在到达文件结尾时终止,它给了我相同的结果,所以显然这不算数,那是什么 但在windows上,当文件包含一个字符时,文件大小仅为1字节,这是正常的。所有这些东西背后都隐藏着什么?最有可能的额
- 文件为空时:文件大小=0字节
- 当一个字符:文件大小=2字节时
- 两个字符时:文件大小=3字节
但在windows上,当文件包含一个字符时,文件大小仅为1字节,这是正常的。所有这些东西背后都隐藏着什么?最有可能的额外字符是Unix/Linux文本文件中每行末尾的换行符。您应该能够使用命令“od-c file”查看该字符。这是由于文本编辑器的缘故。 您必须按了额外的终止字符,如换行符 如果您想要文件中1个字符的
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上运行)您使用的是哪个GUI编辑器?它可能会添加一个终止换行符!使用
od
命令查找.8个向上投票和2000个视图,由于不太可能帮助未来的访问者,该网站已关闭…@duhaime我投票决定重新开放。你也请投票。也许我们能得到更好的答案!它成功了,这又解决了我的一个疑问。因此,“cat file”不会强制在新行上进行提示,因为该文件不包含换行符。谢谢大家的回复。祝你度过愉快的一天。@dimSutar:除非你给它换行符,否则它不会自动读出来。欢迎随时光临。如果同意,你可以接受答案。