C语言获取文件长度的方法

 更新时间:2023年10月25日 09:16:53   作者:暴风雨中的白杨  
这篇文章主要介绍了C语言获取文件长度的相关知识,包括使用标准库方法和使用Linux系统调用,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下

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字段表示文件的长度。

#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;
}

到此这篇关于C语言获取文件长度的文章就介绍到这了,更多相关C语言文件长度内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Matlab绘制七夕咕呱小青蛙

    使用Matlab绘制七夕咕呱小青蛙

    七夕节到了还不快给你的朋友安排上这只咕呱小青蛙?本文将用Matlab绘制一个可爱的咕呱小青蛙,感兴趣的小伙伴可以动手尝试一下
    2022-08-08
  • 详解C++中递增运算符重载的实现

    详解C++中递增运算符重载的实现

    本文主要详解运算符重载里的递增运算符重载;递增和递减原理是一样的,这里就只分享递增的重载;提到递增递减,我们都知道又前置和后置两种方法, 那今天就详解一下前置递增和后置递增的细节,拿捏递增运算符重载
    2022-06-06
  • Qt把文件夹从A移动到B的实现示例

    Qt把文件夹从A移动到B的实现示例

    本文主要介绍了Qt把文件夹从A移动到B的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-03-03
  • 基于字符串移位包含的问题详解

    基于字符串移位包含的问题详解

    本篇文章是对字符串移位包含的问题的解决方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C语言命令行参数的使用详解

    C语言命令行参数的使用详解

    本文主要介绍了C语言命令行参数的使用详解,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 从零开始的Socket编程学习

    从零开始的Socket编程学习

    我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,下面小编带大家了解下
    2019-05-05
  • C语言实现二叉树的示例详解

    C语言实现二叉树的示例详解

    这篇文章主要为大家详细介绍了C语言中二叉树的算法实现以及二叉树的遍历算法与应用,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-06-06
  • Qt超时锁屏的实现示例

    Qt超时锁屏的实现示例

    本文主要介绍了Qt超时锁屏的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • C语言实现文件读写功能流程

    C语言实现文件读写功能流程

    这篇文章主要介绍了C语言实现文件读写,文件是一段数据的集合,这些数据可以是有规则的,也可以是无序的集合。在stdio.h有一个非常重要的东西,文件指针,每个文件都会在内存中开辟一块空间,用于存放文件的相关信息
    2022-12-12
  • C++实现从输入中读取字符串

    C++实现从输入中读取字符串

    这篇文章主要介绍了C++实现从输入中读取字符串的实现思路和具体代码,非常的简单实用,有需要的小伙伴可以参考下
    2016-05-05

最新评论