【C 语言】文件操作 ( ftell 函数 | 使用 ftell 函数获取当前指针位置 | 通过 ftell 计算文件大小 )

article/2025/7/28 17:52:04

文章目录

  • 一、ftell 函数
  • 二、使用 ftell 函数获取当前指针位置
  • 三、通过 ftell 计算文件大小





一、ftell 函数



ftell() 函数的作用是 获取文件的 当前指针位置 相对于 文件首地址偏移字节数 ;


ftell 函数原型 :

#include <stdio.h>
long ftell(FILE *stream);

ftell 使用场景 : 随机方式存取文件时 , 使用 fseek 函数来回移动指针 , 不容易确定当前指针位置 , 通过调用 ftell 函数确定指针位置 ;





二、使用 ftell 函数获取当前指针位置



代码示例 :

  • 第一次打印指针位置 : 刚打开文件 , 还未读取数据 , 指针指向 0 位置 , 索引 0 ;
  • 第二次打印指针位置 : 跳过了 4 字节数据 , 偏移了 4 字节 , 指针指向第 5 字节 , 索引 4 ;
  • 第三次打印指针位置 : 跳过了 4 字节数据 , 又向后读取 2 字节 , 偏移了 6 字节 , 指向第七字节 , 索引 6 ;
#include <stdio.h>int main()
{// 以写文本的方式向文件中写出数据FILE *p = fopen("D:/File/number.dat", "w");// 写出 10 个字符char array[10] = {1,2,3,4,5,6,7,8,9,10};// 将 10 个字符写出到文件中fwrite(array, 1, sizeof(array), p);// 关闭文件fclose(p);// 跳过 4 字节读取文件 2 字节FILE *p2 = fopen("D:/File/number.dat", "r");// 使用 ftell 函数获取当前指针位置int location = ftell(p2);// 刚打开文件 , 还未读取数据 , 指针指向 0 位置 ★★★printf("location = %d\n", location);// 读取数据缓冲区char array2[2];// 跳过 4 字节 , 此时当前位置是 0fseek(p2, 4, SEEK_CUR);// 使用 ftell 函数获取当前指针位置location = ftell(p2);// 跳过了 4 字节数据 , 偏移了 4 字节 ,// 指针指向第 5 字节 , 索引 4 ★★★printf("location = %d\n", location);// 读取 2 字节fread(array2, 1, sizeof(array2), p2);// 打印前 2 字节数据printf("%d , %d\n", array2[0], array2[1]);// 使用 ftell 函数获取当前指针位置location = ftell(p2);// 跳过了 4 字节数据 , 又向后读取 2 字节 ,// 偏移了 6 字节 , 指向第七字节 , 索引 6 ★★★printf("location = %d\n", location);return 0;
}

执行结果 :

在这里插入图片描述





三、通过 ftell 计算文件大小



代码示例 : 打开文件后 , 直接使用 fseek 跳转到文件末尾 , 然后使用 ftell 获取当前指针 , 打印出指针位置 , 即可获取文件大小 ;

#include <stdio.h>int main()
{// 以写文本的方式向文件中写出数据FILE *p = fopen("D:/File/number.dat", "w");// 写出 10 个字符char array[10] = {1,2,3,4,5,6,7,8,9,10};// 将 10 个字符写出到文件中fwrite(array, 1, sizeof(array), p);// 关闭文件fclose(p);// 先打开文件FILE *p2 = fopen("D:/File/number.dat", "r");// 将文件指针移动到文件末尾fseek(p2, 0, SEEK_END);// 使用 ftell 函数获取当前指针位置int location = ftell(p2);// 通过读取当前文件指针位置, 即可获取文件大小 ★★★printf("filesize = %d\n", location);// 将文件指针恢复fseek(p2, 0, SEEK_SET);// 使用 ftell 函数获取当前指针位置location = ftell(p2);// 查看指针是否恢复 ★★★printf("location = %d\n", location);return 0;
}

执行结果 :

在这里插入图片描述


http://chatgpt.dhexx.cn/article/4KIiMdTP.shtml

相关文章

文件夹正在使用,如何快速找到关联进程

问题: Windows 10操作文件夹时候&#xff0c;出现文件夹正在使用&#xff0c;无法关闭删除等&#xff1f; 解决方案: 1. 文件夹正在使用&#xff0c;win7会提醒使用的进程&#xff0c;而win10不会 2. 快速找到关联进程并关闭 a. 首先 winr 运行 resmon.exe b. 切换到 CPU&a…

解决在删除文件夹或文件时:另一个程序正在使用此文件,进程无法访问。

kuaiya\kzippb - 另一个程序正在使用此文件,进程无法访问。 问题描述: 平时在删除文件夹或者删除某个单独文件的时候,我们经常会遇见如下问题,如操作无法完成或者文件或者文件夹已在另一程序打开, 当然我尝试使用管理员权限删除文件时,也是提示同样的问题。 问题解决…

Windows修改文件报错:“文件或文件夹正在使用”解决办法

Windows修改文件报错&#xff1a;“文件或文件夹正在使用”解决办法 打开任务管理器 在《性能》页中打开资源监视器&#xff0c;如图箭头所指 资源监视器 在关联的句柄中所有关键字&#xff0c;即无法关闭的文件关键字 将搜索出来的进程关闭即可

文件夹直接打开:右键菜单,使用指定【工具】打开文件和文件夹 (通过IDEA/VScode打开)

目录 一、打开注册表编辑器 1.摁住键盘上的 win 键, 再摁住 r 键。 2.接下来请输入regedit, 点击确定。 二、配置右键文件时的选项 【注意&#xff1a;文件】 1、找到配置目录 2.在shell里新建项进行配置&#xff1a; 通过IDEA打开&#xff1a; 1、新建项&#xff0c;起…

.git文件夹信息泄露漏洞利用

未经授权请勿利用文章中的技术 资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果 和损失&#xff0c;均由使用者本人负责。 无意中使用x-ray被动扫描&#xff0c;扫描出了一个git文件信息泄露。 漏洞原理 通过手动验证确实可以下载到.git配置文…

计算机总是说该程序正在使用,另一个程序正在使用此文件,电脑程序正在使用此文件无法访问如何解决...

最近有位朋友,在清理电脑文件的时候,出现了一些问题。在删除文件的时候,电脑提示“另一个程序正在使用此文件”,导致文件无法顺利删除,不知道如何解决。下面就一起来看看电脑另一个程序正在使用此文件 无法访问如何解决吧! 另一个程序正在使用此文件 无法访问的情况,很多…

去除Win10资源管理器中快速访问的“最近使用的文件”和“常用文件夹”

经常访问的文件和文件夹会在资源管理器中的快速访问中显示&#xff0c;如下 去除方法&#xff1a; 打开“文件夹选项”&#xff0c;取消勾选以下两个选项&#xff1a; 在“快速访问”中显示最近使用的文件 在“快速访问”中显示常用文件夹 修改后的效果&#xff1a;

解决无法删除文件夹的情况:文件夹正在使用,操作无法完成,因为其中的文件,或文件夹已在另一个程序中打开...

问题描述 在删除文件夹的时候&#xff0c;可能会遇到文件夹正在使用&#xff0c;操作无法完成&#xff0c;因为其中的文件&#xff0c;或文件夹已在另一个程序中打开&#xff0c;请关闭该文件夹或或文件&#xff0c;然后重试。这类无法关闭删除文件夹的情况&#xff0c;如下图…

查看文件夹正在被哪个进程使用

windows系统中当我们在删除某个文件或文件夹时有时会提示该文件有程序在使用不能被删除&#xff0c;这时相当惆怅。那么可以用这个方法来找到是哪个进程在占用该文件&#xff1a; 原文参见&#xff1a;https://blog.csdn.net/haiross/article/details/49678655 其实这样做就够…

【PC】Win7 文件夹正在使用

当你删除文件&#xff0c;发现删除不了&#xff0c;出现这种情况的时候 点击开始 在如下框框输入 资源监视器 先点击CPU 然后在下面关联句柄中 输入 你删除的文件名 在结果中查看对应的目录 &#xff0c;结束进程即可

查看文件(或文件夹)被哪个进程使用-文件已在另一程序中打开

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言步骤 前言 windows系统中当我们在删除某个文件或文件夹时有时会提示该文件有程序在使用不能被删除&#xff0c;这时相当惆怅。那么可以用这个方法来找到是哪个…

计算机常用文件夹怎么关,Win10常用文件夹和最近使用的文件怎么不让显示?关闭常用文件夹...

在Win10任务栏的左侧有一个图标&#xff0c;点击进去就直接进入了“文件资源管理器”&#xff0c;方便用户查找文件。不过&#xff0c;在使用的时候会发现&#xff0c;里面的“常用文件夹”和“最近使用的文件” 并没有什么用&#xff0c;而且打开之后&#xff0c;感觉比较乱。…

”操作无法完成,因为其中的文件夹或文件已在另—程序中打开请关闭该文件夹或文件,然后重试”_解决文件夹正在使用无法删除的方法

一、问题样式 二、解决步骤 打开任务管理器 快捷键&#xff1a;CTRLSHIFTESC 选择“性能” 点击“打开资源监视器” 选择“CPU” 搜索框里输入要删除的文件名 右键“结束进程” 再去删掉需要删掉的文件夹 文件夹已经成功删除了

Windows 10文件/文件夹正在使用无法删除的6个解决方法

文章来源&#xff1a;https://www.reneelab.com.cn/cannot-delete-folder-in-use.html 目录 一、删除文件时提示“文件/文件夹正在使用无法删除”的原因二、“文件/文件夹正在使用无法删除”的解决方案方法1&#xff1a;使用杀毒软件查杀病毒方法2&#xff1a;使用Windows资源监…

如何给文件夹添加提示信息

今天整理了下自己的工作空间&#xff0c;文件夹可真多啊&#xff0c;好多因为日子久了&#xff0c;自己都忘记是干什么的了&#xff0c;也不敢盲目删除&#xff0c;只好一个个打开测试一遍&#xff0c;然后就想&#xff0c;下次要忘了怎么办&#xff1f;最好的方法当然就是给文…

查看文件(或文件夹)被哪个进程使用【文件已在另一程序中打开】

轻松查看文件被哪个进程使用 有时候小伙伴们正在或刚使用过的文件夹或者某个文件&#xff0c;想要把它移动到其它的位置&#xff0c;或者删除它&#xff0c;又或者仅仅想重命名这个文件&#xff0c;但是在操作过程中&#xff0c;我们发现它弹出来了文件夹或者文件正在被使用&a…

【Matlab文件操作】打开、创建、更改和删除文件与文件夹以及获取文件信息

&#x1f517; 运行环境&#xff1a;Matlab &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 &#x1f497; 大家好&#x1f917;&#x1f917;&#x1f917;&#xff0c;我是左…

windows 文件夹正在使用 “操作无法完成,因为其中的文件夹或文件已在另一程序中打开“ 解决办法

解决办法&#xff1a; 右键状态栏 --> 任务管理器 --> 性能 --> 打开资源监视器 --> CPU --> 在 关联的句柄 处搜索被占用的文件夹名称 现象 解决办法 第1步 第2步 第3步 例如搜索 test 第4步 右键找到占用的程序 第5步 点击 结束进程 后 第6步 再去删…

几个小工具帮你轻松解决“文件夹正在使用”、“另一个程序正在使用此文件”

上一篇写了《终于解决了&#xff1a;你需要来自XXX的权限才能对此文件进行更改》 今天想分享的则是用于「解除文件占用」方便你快速删除的工具&#xff0c;虽然这些工具都是使用频率低&#xff0c;但对阿虚来说几乎是必备的工具 毕竟我相信大家在删除文件的时候&#xff0c;肯…