C读取文件大小的几种方式

一 标准库 fseek 至尾部 读取ftell返回

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

int main(int argc, char** argv)
{
    char* filename=argv[1];
    FILE* fp = fopen(filename, "r");
    long int size ;
    fseek(fp, 0, SEEK_END);
    size = ftell(fp);
    printf("%s size is %ld\n",filename,size);
    fclose(fp);
    return 0;
}

二 stat读取文件信息

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

int main(int argc, char** argv)
{
    char* filename=argv[1];
    struct stat fstat;
    stat(filename,&fstat);
    printf("%s size is %ld\n",filename,fstat.st_size);
    return 0;
}

三 lseek 和fseek差不多

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

int main(int argc, char** argv)
{
   char* filename=argv[1];
    int fd = open(argv[1],O_RDONLY);
    long int size = 0;
    size = lseek(fd,0,SEEK_END);
    printf("%s size is %ld\n",filename,size);
    close(fd);
    return 0;
}
相关推荐
热爱专研AI的学妹6 分钟前
数眼搜索API与博查技术特性深度对比:实时性与数据完整性的核心差异
大数据·开发语言·数据库·人工智能·python
Mr_Chenph22 分钟前
Miniconda3在Windows11上和本地Python共生
开发语言·python·miniconda3
阿狸远翔24 分钟前
Protobuf 和 protoc-gen-go 详解
开发语言·后端·golang
永远前进不waiting24 分钟前
C复习——1
c语言·开发语言
长安er29 分钟前
LeetCode136/169/75/31/287 算法技巧题核心笔记
数据结构·算法·leetcode·链表·双指针
MarkHD31 分钟前
智能体在车联网中的应用:第29天 多智能体完全合作场景的核心算法:从CTDE思想到VDN与MADDPG的深度解析
算法
伯明翰java35 分钟前
Java数据类型与变量
java·开发语言
一路往蓝-Anbo36 分钟前
【第13期】中断机制详解 :从向量表到ISR
c语言·开发语言·stm32·单片机·嵌入式硬件
渣渣盟43 分钟前
Linux邮件服务器快速搭建指南
linux·服务器·开发语言
wanzhong23331 小时前
CUDA学习5-矩阵乘法(共享内存版)
深度学习·学习·算法·cuda·高性能计算