如果文件大小指的是你从 C 程序中可以读进的字符数量, 要得到这个精确的数字 可能困难或不可能。
Unix 系统函数 stat() 会给出准确的答案。有些系统提供了类似 Unix 的 stat() 函数, 但只返回一个近似值。你可以调用 fseek() 搜 索到文件尾, 再调用 ftell(), 或者调用 fstat(), 然而这些 方法都有同样的问题: fstat() 不可移植, 通常返回和 stat() 一样 的值; ftell() 并不保证可以返回字符计数, 除非是用于二进制文件, 但是, 严格来讲, 二进制文件并不一定支持 fseek 搜索到 SEEK_END。 某些系统提供 filesize() 或 filelength() 的函数, 但是它们明显 的不可移植。
你是否确定你必须预先知道文件大小?作为一个 C 程序最准确的方法 就是打开文件并读入, 也许可以重新整理代码, 使其边读入边计算文件大小。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。