c - 如何在没有 fseek 和 ftell 的情况下在 ANSI C 中获取文件大小?

标签 c file size filesize

在寻找给定 FILE* 的文件大小的方法时,我遇到了 this article建议反对它。相反,它似乎鼓励使用文件描述符和 fstat

然而,我的印象是 fstatopen 和文件描述符通常不那么便携(经过一​​些搜索,我发现了一些东西effect ).

有没有一种方法可以获取 ANSI C 中文件的大小,同时与文章中的警告保持一致?

最佳答案

在标准 C 中,fseek/ftell 舞蹈几乎是镇上唯一的游戏。你要做的任何其他事情至少在某种程度上取决于你的程序运行的特定环境。不幸的是,舞蹈也有你所链接的文章中描述的问题。

我想您总是可以读取文件中的所有内容,直到 EOF 并一路跟踪 - 例如使用 fread()

关于c - 如何在没有 fseek 和 ftell 的情况下在 ANSI C 中获取文件大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9830788/

相关文章:

java - 如何判断 Java 组件将接收的最大宽度以请求适当的高度?

c - C 程序的参数是否保证以 '\0' 终止?

C 宏扩展命令

c - 在C下的Linux ubuntu中以类似 "Jun 19 10:08"的格式打印文件的详细信息

python - matplotlib 中的气泡图或热图

database - sql server 数据库文件大小已经是 4 gb 但里面的数据不多

c - 有哪些重构方法可以减少编译代码的大小?

c - 使用c从单板计算机写入mysql数据库

c - 在 malloc 实现中维护空闲列表

java - 该文件对象是否保持打开状态?