十二、Linux文件 - fseek函数讲解
目录
一、fseek函数讲解
二、fseek函数实战
一、fseek函数讲解
重定向文件内部的指针
注:光标 ---- 文件内部的指针
函数原型:
int fseek(FILE *stream,long offset,int framewhere)
- 参数:
- stream:文件指针
- offset:指针的偏移量
- framewhere:指针偏移起始位置
- 返回值:重定位成功返回0,否则返回非零
需要注意的是该函数不是重定位文件指针,而是重定位文件内部的指针,让指向文件内部数据的指针移到文件中我们感兴趣的数据上,重定位主要是这个目的。
说明:执行成功,则stream指向fromwhere为基准,偏移offset个字节的位置。执行失败(比方说offset偏移的位置超出了文件大小),则保留原来的stream的位置不变
分别用3个宏:
- SEEK_SET 即0 文件开头
- SEEK_CUR 即1 文件当前位置
- SEEK_END 即2 文件末尾
但不推荐用数字,最好用宏,简言之:
- fseek(fp,100L,SEEK_SET);把fp指针移动到离文件开头100字节处;
- fseek(fp,100L,SEEK_CUR);把fp指针移动到离文件当前位置100字节处;
- fseek(fp,100L,SEEK_END);把fp指针退回到离文件结尾100字节处;
二、fseek函数实战
- 执行流程
- 代码内容
源代码:
#include <stdio.h>
#include <string.h>
int main()
{FILE *fp = NULL;int nRet = 0;char readBuff[12];memset(readBuff,0,12);char* writeBuff = "hello world!";fp = fopen("mm","r+");//r+if(fp == NULL){printf("open failed!\n");return -1;}printf("open success1\n");nRet = fread(readBuff,4,2,fp);if(nRet <= 0){printf("fread failed!\n");return -3;}printf("read %s\n",readBuff);nRet = fseek(fp,1,SEEK_SET);if(nRet != 0){printf("fseek failed!");return -4;}printf("fseek succeess!\n");nRet = fwrite(writeBuff,4,1,fp);if(nRet <= 0){printf("fwrite failed!");return -4;}printf("fwrite success!\n");nRet = fclose(fp);if(nRet != 0){printf("close failed!\n");return -2;}printf("close success1\n");return 0;
}
十二、Linux文件 - fseek函数讲解相关推荐
- 十、Linux文件 - fread函数讲解
目录 1.fread函数讲解 2.fread函数实战 1.fread函数讲解 从文件中读入数据到指定的地址中 函数原型: size_t fread(void*buff , size_t size, s ...
- Helm 3 完整教程(十二):Helm 函数讲解(6)字典函数
推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...
- 第十二章 SQL聚合函数 VARIANCE, VAR_SAMP, VAR_POP
文章目录 第十二章 SQL聚合函数 VARIANCE, VAR_SAMP, VAR_POP 大纲 参数 描述 当前事务期间所做的更改 示例 第十二章 SQL聚合函数 VARIANCE, VAR_SAM ...
- c语言压缩文本文件北京理工大学,北京理工大学C语言程序设计第十二章文件.ppt...
北京理工大学C语言程序设计第十二章文件 2000年1月25日 北京理工大学 / 第十二章 文件 第一节 文件概述 第二节 文件的处理 第三节 文件的顺序读写操作 第四节 文件的随机读写操作 第五节 文 ...
- Linux 高并发学习笔记 - Linux 文件操作函数
1.6.2 Linux 文件操作函数 Linux 高并发学习笔记 - 笔记索引 前言 关于文件操作函数这一块主要用英文文档的形势书写,因为凉皮在写文档的时候发现Markdown用起来太繁琐了.那么关于 ...
- 直接读取ftp服务器文件,如何在ftp服务器上只读取十二个文件?
如何只读取12个文件导致我只读取ftp 服务器中的所有文件,每4分钟文件添加一个新文件.如何在ftp服务器上只读取十二个文件? 感谢您的帮助,我是初学者在API编程:) if(files.length ...
- splice php,浅谈PHP源码二十二:关于array_splice函数
这篇文章主要介绍了关于 浅谈PHP源码二十二:关于array_splice函数,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 浅谈PHP源码二十二:关于array_splice函数 a ...
- Linux高级应用(二)文件IO函数与液晶屏显示
一.结构体占用的内存 struct test { char a; int b; short c; long d; char *p; }; 求该结构体占用的内存?sizeof(struct test) ...
- linux文件操作函数程序,linux 文件操作函数
文件操作(Linux) 常用linux函数库中的基本函数 1. close函数,关闭文件 2. creat函数,建立文件 3. dup.dup2函数,复制文件描述词 4. fcntl函数,文件描述词操 ...
最新文章
- flume bucketpath的bug一例
- python time智能等待_python中等待怎么表示
- Eclipse无法找到Java EE Tools选项问题解决方案
- Swif语法基础 要点归纳(一)
- 开发辅助 | 阿里图标库iconfont入门使用
- Linux 终端(TTY)
- Linux 源码安装 Python3 和 pip3
- jq获取表格里的checkbox_Python抓取网页表格(一)
- python做的游戏可以导出吗_Python视频教程
- python中bar函数的用法_Python:如何在函数中使用progressbar
- python基础之进程、线程、协程篇
- Pro Git读书笔记 - 分支
- 字典攻击ssh弱口令
- QQ群统一规范与守则
- 进销存excel_干货分享,上班族必看。EXCEL轻松搞定制作进销存报表
- 小米路由器mini无线连接HP1010打印机
- VBS教程 创建文件夹
- SQL编程:外键约束
- 电脑开的热定手机连不上解决方法
- excel函数去重_Excel 2010中去除重复项的几种常用技巧
热门文章
- openlayer 利用overlay实现动画效果
- 龙珠计划-机器学习-day03-基于LightGBM的分类预测
- 华为基站服务器芯片,华为发布5G基站核心芯片“天罡”
- 6招深入进行 Cocos 卡牌游戏优化!《新斗罗大陆》研发团队经验分享
- Activity的初级,中级,高级问法,android开发艺术探索电子
- 关系型数据库有什么?
- 游戏行业的“游戏盾”有什么作用?
- 屏幕录像后的视频文件,如何压缩变小?
- 凹凸世界搬运工机器人图片_凹凸世界超级机器人大战怎么过
- 修改app绕过模拟器检测_双平台直连绕过手游检测机制,莱仕达P30手柄实测