首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何确定C中文件的大小?

如何确定C中文件的大小?
EN

Stack Overflow用户
提问于 2018-04-02 06:02:39
回答 2查看 0关注 0票数 0

如何计算文件的大小(以字节为单位)?

代码语言:txt
复制
#include <stdio.h>

unsigned int fsize(char* file){
  //what goes here?
}
EN

回答 2

Stack Overflow用户

发布于 2018-04-02 14:27:48

基于NilObject的代码:

代码语言:txt
复制
#include <sys/stat.h>

off_t fsize(const char *filename) {
    struct stat st; 

    if (stat(filename, &st) == 0)
        return st.st_size;

    return -1; 
}

如果你想fsize()若要打印错误消息,可以使用以下命令:

代码语言:txt
复制
#include <sys/stat.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>

off_t fsize(const char *filename) {
    struct stat st;

    if (stat(filename, &st) == 0)
        return st.st_size;

    fprintf(stderr, "Cannot determine size of %s: %s\n",
            filename, strerror(errno));

    return -1;
}
票数 0
EN

Stack Overflow用户

发布于 2018-04-02 15:23:55

不要用int。这些天,超过2G的文件像污垢一样常见。

不要用unsigned int。大小超过4G的文件很常见,。

标准库定义off_t作为一个无符号64位整数,这是每个人都应该使用的。我们可以在几年内将其重新定义为128位,当我们开始有16个艾字节文件时。

如果你在windows上,你应该用GetFileSizeEx。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档