18.6 怎么在读入文件前获得文件大小【C语言版】

如果文件大小指的是你从C 程序中可以读进的字符数量, 要得到这个精确的数字可能困难或不可能。

Unix 系统函数stat() 会给出准确的答案。

有些系统提供了类似Unix 的stat()函数, 但只返回一个近似值。

你可以调用fseek() 搜索到文件尾, 再调用ftell(), 或者调用fstat(), 然而这些方法都有同样的问题:

fstat() 不可移植, 通常返回和stat()一样的值; ftell() 并不保证可以返回字符计数, 除非是用于二进制文件, 但是, 严格来讲, 二进制文件并不一定支持fseek 搜索到SEEK END。

某些系统提供filesize()或filelength() 的函数, 但是它们明显的不可移植。

你是否确定你必须预先知道文件大小?

作为一个C 程序最准确的方法就是打开文件并读入, 也许可以重新整理代码, 使其边读入边计算文件大小。

永不止步步 发表于01-18 10:00 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:345377个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号