实现一个函数来计算文件的大小(C语言)

2023-11-19

用到的函数:fopen、fseek、ftell 

//打开文件

FILE *fopen(const char * pathname, const char * mode);

pathname:文件路径,可以是绝对路径或相对路径。        

mode:文件的操作模式(可读 or 可写 or 可读写),参数如下表所示。

返回值:返回文件指针
模式(mode) 含义
                r 只读
                w 只写
                a 末尾追加只写
                r+ 读写
                w+ 读写
                a+ 读写

// 任意的移动文件指针,向前向后都可以
int fseek(FILE *stream, long offset, int whence);

stream:文件指针

offset:偏移值,文件指针相对于whence的偏移,为正数时文件指针后移,为负数时前移。

whence:从 SEEK_SETSEEK_CURSEEK_END中取值

SEEK_SET 文件开头
SEEK_CUR 文件指针当前的位置
SEEK_END 文件末尾

long ftell(FILE *stream);

stream:文件指针

返回值:返回当前文件指针相对于文件开始位置的字节数

代码示例:(函数实现的环境实在Linux里)

#include <stdio.h>
#include <stdlib.h>

long back_size(const char *file)
{
	//打开需要计算大小的文件
	FILE *frp = fopen(file,"r");
	if(NULL == frp)//文件打开失败
	{
		perror("fopen");
		exit(EXIT_FAILURE);
	}
	//将文件指针置于文件末尾
	fseek(frp,0,SEEK_END);
	//计算文件大小并返回
	return ftell(frp);
}

int main(int argc,const char* argv[])
{
	if(2 != argc)//判断用户的参数数量是否正确
	{
		printf("User: ./a.out file_name\n");
		return 0;
	}
	printf("文件大写为:%ld字节\n",back_size(argv[1]));
}

C语言文件读写操作参考:C如何简单的读写文件?二进制文件如何读写?如何移动文件指针?_c语言文件指针移动_我要出家当道士的博客-CSDN博客

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实现一个函数来计算文件的大小(C语言) 的相关文章

随机推荐

  • 正则表达式工具类

    在实际开发中总会使用到正则表达式匹配数据 我也是在后面查看了一些资料 下面写一个常用的正则表达式匹配集合 正则匹配模式 表示匹配字符串的开始位置 例外 用在中括号中 时 可以理解为取反 表示不匹配括号中字符串 表示匹配字符串的结束位置 表示
  • 量化交易动了谁的奶酪

    最近关于量化交易的政策讨论频出 在内容上 主要是限制其高频交易和某些可能对市场产生负面影响的行为 具体来说 中国证券监督管理委员会和上海证券交易所等机构都出台了相关政策 对量化交易的频率 规模 风险控制等方面进行了限制 这些政策的出台主要是
  • python--模块导入

    目录 模块简介 模块导入的两种方式 方式一 import 方式二 from import 模块简介 1 什么是模块 模块就是一系列功能的结合体 可以直接使用 2 为什么要用模块 极大地提升开发效率 拿来主义 gt gt gt 站在巨人的肩膀
  • docker部署redis集群实现动态扩缩容

    目录 思考 分布式存储的解决方案 哈希取余分区 一致性哈希算法分区 哈希槽分区 采用哈希槽分区 部署三主三从 docker 准备工作 创建3主3从redis实例 进入容器中 构建主从关系 主从容错切换迁移 主从扩容 主从缩容 思考 假如现有
  • canvas实战之酷炫背景动画(一)

    系列文章 canvas实战之酷炫背景动画 一 canvas实战之酷炫背景动画 二 canvas实战之酷炫背景动画 三 canvas实战之酷炫背景动画 四 canvas实战之酷炫背景动画 五 canvas实战之酷炫背景动画 六 canvas实
  • 09-java多线程

    多线程相关概念 并发和并行 并行 在同一时刻 有多个指令在多个CPU上同时执行 并发 在同一时刻 有多个指令在单个CPU上交替执行 进程和线程 进程 是正在运行的程序 独立性 进程是一个能独立运行的基本单位 同时也是系统分配资源和调度的独立
  • 分布式一致性协议Raft原理与实例

    thesecretlivesofdat 分布式一致性协议Raft原理与实例 标签 分布式算法 2015 09 30 20 43 3519人阅读 评论 15 收藏 举报 分类 Hadoop 7 版权声明 本文为博主原创文章 未经博主允许不得转
  • 客户端存储技术

    Cookie Cookie 是一种非常基础的客户端存储方式 得到广泛的支持 创建多个 cookie 的方法 document cookie name Jim document cookie age 18 当创建多个 cookie 时只能像这
  • chrome浏览器安装redux-devtools调试工具

    chrome浏览器安装redux devtools调试工具 1 点击进入https www chromefor com 2 在搜索框搜索redux 3 找到最新版本 Redux DevTools v2 17 0 进行下载 4 选择下载线路
  • Netty的零拷贝与ByteBuf

    Netty零拷贝 Netty的零拷贝完全是在用户态 Java 层面 的 它的零拷贝更多的是偏向于 优化数据操作 这样的概念 而不是操作系统层面的用户态和核心态之间的数据拷贝 Netty 的 零拷贝体现在如下几个个方面 Netty 提供了 C
  • java各种异常总结

    一 java异常汇总 1 Throwable 是所有异常的祖先 Throwable有两个子类 Error和Exception 2 Error是错误 表示运行应用程序中出现了严重错误 都是通过Error抛出的 一般程序无法处理 Excepti
  • STM32常用通信方式总结-IIC,SPI,USART/UART,232,485,CAN,USB,TypeC

    通信协议划分原理 1 通信协议划分 1 1串行和并行 串行通信就是设备之间通过少量的线 进行一位一位的数据传输 并行通信就是使用多根数据线同时进行数据传输 1 2 全双工 半双工 单工 全双工 在同一时刻 两个设备之间可以同时收发数据 半双
  • 获取li标签文本内容

    思路 为li对象添加单击事件 事件触发后利用innerHTML获取li的文本 实例演示如下 1 HTML结构
  • STM32串口收数据的几种不同方式

    引用 http www 51hei com bbs dpj 26383 1 html 本例程通过PC机的串口调试助手将数据发送至STM32 接收数据后将所接收的数据又发送至PC机 具体下面详谈 实例一 void USART1 IRQHand
  • JVM OOM和CPU问题排查

    目录 1 JVM调优工具 1 1 jps 1 2 jstat 1 3 jstack 1 4 jinfo 1 5 jmap 2 OOM排查过程 2 1 OOM原因 2 2 OOM发生区域 2 2 1 Java堆溢出 heap 2 2 2 Ja
  • 关于《Ant-design-vue 树形控件tree 新增节点,删除节点,编辑节点的解决方案》文章的补充

    我看有不少人看到这个 Ant design vue 树形控件tree 新增节点 删除节点 编辑节点的解决方案 文章以后 有不少疑惑 关于删除 增加的问题 以及key重复的问题 我发的这篇文章只是提供了一个思路 整合下 还是对你们详解一下 可
  • IDEA配置Maven教程(非常详细)从零基础入门到精通,看完这一篇就够了

    文章目录 前言 一 Maven下载 二 配置Maven环境变量 三 settings xml配置文件修改 四 打开IDEA配置Maven 前言 本文介绍在IDEA中配置Maven 一 Maven下载 首先我们进入maven官方网站 进入网页
  • Windows添加Linux命令

    Windows 下打造基于git的Linux命令安装 TOC windows下git添加zip 预先善其事 必先利其器 具体添加步骤 下载zip和bzip2 zip命令用bzip2 dll动态库运行 下载链接 1 zip 3 0 bin z
  • Markdown 技能树(8):代码块

    Markdown 技能树 8 代码块 行内代码的格式很简单 只需要使用两个 将代码内容包裹起来即可 比如 var foo bar 缩进显示代码 要在 Markdown 中创建代码块也很简单 只要简单地缩排 4 个空白或是 1 个 tab 就
  • 实现一个函数来计算文件的大小(C语言)

    用到的函数 fopen fseek ftell 打开文件 FILE fopen const char pathname const char mode pathname 文件路径 可以是绝对路径或相对路径 mode 文件的操作模式 可读 o