前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基础知识 | 每日一练(152)

基础知识 | 每日一练(152)

作者头像
小林C语言
发布2019-10-24 16:11:27
2750
发布2019-10-24 16:11:27
举报

基础知识练习

士人有百折不回之真心,才有万变不穷之妙用。立业建功,事事要从实地着脚,若少慕声闻,便成伪果;讲道修德,念念要从虚处立基,若稍计功效,便落尘情。 ——菜根谭

读者:怎样在读入文件前, 知道文件大小?

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

Unix 系统函数 stat() 会给出准确的答案。有些系统提供了类似 Unix 的 stat()函数, 但只返回一个近似值。

你可以调用 fseek() 搜索到文件尾, 再调用 ftell(), 或者调用 fstat(), 然而这些方法都有同样的问题: fstat() 不可移植, 通常返回和 stat()一样的值;

ftell() 并不保证可以返回字符计数, 除非是用于二进制文件, 但是, 严格来讲, 二进制文件并不一定支持 fseek 搜索到 SEEK END。

某些系统提供 filesize()或 filelength() 的函数, 但是它们明显的不可移植。你是否确定你必须预先知道文件大小?

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 C语言入门到精通 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档