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;
}
相关推荐
好好沉淀17 分钟前
Elasticsearch 中获取返回匹配记录总数
开发语言·elasticsearch
寄存器漫游者18 分钟前
数据结构:带头节点单链表
c语言·数据结构
2301_7657031427 分钟前
C++与自动驾驶系统
开发语言·c++·算法
定偶27 分钟前
MySQL多表连接查询详解
c语言·数据库·mysql
Ll130452529830 分钟前
Leetcode二叉树 part1
b树·算法·leetcode
MediaTea30 分钟前
<span class=“js_title_inner“>Python:实例对象</span>
开发语言·前端·javascript·python·ecmascript
鹿角片ljp32 分钟前
力扣9.回文数-转字符双指针和反转数字
java·数据结构·算法
热爱编程的小刘40 分钟前
Lesson04---类与对象(下篇)
开发语言·c++·算法
毕设源码-朱学姐42 分钟前
【开题答辩全过程】以 基于Java的九价疫苗预约系统为例,包含答辩的问题和答案
java·开发语言
雨季6661 小时前
Flutter 三端应用实战:OpenHarmony “微光笔记”——在灵感消逝前,为思想点一盏灯
开发语言·javascript·flutter·ui·dart