C语言获取文件长度

C语言获取文件长度

文章目录

一、使用标准库方法

c 复制代码
#include <stdio.h>

long get_file_size(const char * filename ){
    long size = 0;
    FILE * fp = fopen(filename,"rb");
    if( fp == NULL ) {
        printf("open file %s failed\r\n",filename);
        return 0;
    }
    // 移动文件指针到文件末尾
    fseek(fp,0,SEEK_END);
    // 获取文件长度
    size = ftell(fp);
    fclose(fp); fp = NULL;
    return size;
}

二、使用Linux系统调用

在Linux操作系统下,可以使用stat函数来获取文件信息,其中st_size字段表示文件的长度。

c 复制代码
#include <stdio.h>
#include <sys/stat.h>

long get_file_size(const char * filename ){
    struct stat st;
    // 获取文件信息
    if( stat(filename,&st) == -1){
        printf("get file %s 's info failed\r\n",filename);
        return 0;
    }
    
    //S_ISLNK(st_mode):是否是一个连接
	//S_ISREG是否是一个常规文件
	//S_ISDIR是否是一个目录
	//S_ISCHR是否是一个字符设备
	//S_ISBLK是否是一个块设备
	//S_ISFIFO是否是一个FIFO文件
	//S_ISSOCK是否是一个SOCKET文件
    
    // 检查文件类型
    if( !S_ISREG(st.st_mode)){
        printf("%s 不是一个常规文件\r\n",filename);
        return 0;
    }
    return st.st_size;
}
相关推荐
cos5 分钟前
React RCE 漏洞影响自建 Umami 服务 —— 记 CVE-2025-55182
前端·安全·react.js
ConardLi11 分钟前
分析了 100 万亿 Token 后,得出的几个关于 AI 的真相
前端·人工智能·后端
老华带你飞17 分钟前
英语学习|基于Java英语学习系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·后端·学习
qq_4798754318 分钟前
C++ 模板元编程
java·开发语言·c++
codingPower19 分钟前
Java EasyExcel创建复杂表格的完整指南:WriteTable
java·开发语言
阿珊和她的猫20 分钟前
UTF - 8 编码在 HTML 中的重要性
前端·html
加油乐37 分钟前
css及js实现正反面翻转
前端·javascript·css
恶猫43 分钟前
抖音直播时,飘窗提示的html窗口,主播不在,正在喝9
前端·html·直播·抖音·素材
Felven1 小时前
C. Isamatdin and His Magic Wand!
c语言·数据结构·算法
霁月的小屋1 小时前
Vue组件通信全攻略:从基础语法到实战选型
前端·javascript·vue.js