当前位置:  开发笔记 > 编程语言 > 正文

确定大于4GB的文件的大小

如何解决《确定大于4GB的文件的大小》经验,为你挑选了2个好方法。

代码目前正在执行此操作,fgetpos会处理大于4GB的文件,但搜索会返回错误,所以任何想法如何寻找结束file > 4GB

fpos_t currentpos;

sok=fseek(fp,0,SEEK_END);
assert(sok==0,"Seek error!");

fgetpos(fp,¤tpos);
m_filesize=currentpos;

R.... 9

忽略出现在其中的"64"的所有答案.在Linux上,您应该添加-D_FILE_OFFSET_BITS=64到CFLAGS并使用fseekoftello/返回off_t值而不是的函数long.这些不是C的一部分,而是POSIX.其他(非Linux)POSIX系统可能需要不同的选项以确保它off_t是64位; 检查你的文档.



1> R....:

忽略出现在其中的"64"的所有答案.在Linux上,您应该添加-D_FILE_OFFSET_BITS=64到CFLAGS并使用fseekoftello/返回off_t值而不是的函数long.这些不是C的一部分,而是POSIX.其他(非Linux)POSIX系统可能需要不同的选项以确保它off_t是64位; 检查你的文档.


@qed:"不属于POSIX":见http://pubs.opengroup.org/onlinepubs/9699919799/functions/contents.html; `-D_FILE_OFFSET_BITS = 64`的用法:见http://man7.org/linux/man-pages/man7/feature_test_macros.7.html

2> davenpcj..:

如果您在Windows中,则需要GetFileSizeEx(MSDN).返回值是64位int.

在linux stat64(手册页)是正确的.如果您正在处理文件*,请使用fstat.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有