200822C阶段一文件
目录
- 一、学习的知识点
- 文件
- 定义
- 文件的操作
- 文件相关的封装函数
- 二、上课没有听懂或者没有理解的地方
- 三、当天学习的收获
- 四、作业的思路、不会的地方
- 五、其他需要反馈的问题
- 六、心得体会
一、学习的知识点
文件
定义
文件一般指存储在外部介质(如磁盘磁带)上数据的集合。操作系统是以文件为单位对数据进行管理的。从操作系统的角度看,每一个与主机相连的输入输出设备看作是一个文件。
文件的操作
在缓冲文件系统中,每个被使用的文件都要在内存中开辟一FILE类型的区,存放文件的有关信息。stdio.h 中定义了一个称为 FILE 的结构.
FILE *fp; //文件指针指向一个结构fp=fopen("data.txt","r+"); //返回文件类型的指针//r+ 如果打开一个不存在的文件,返回NULL;打开一个存在的文件,打开成功不会新建//w+ 如果打开一个不存在的文件,建立一个新的文本文件;打开一个存在的文件,也会新建if(fp == NULL){文件打开失败fp=fopen("data.txt","w+");}printf("文件打开成功");//将内存数据写入到文件,成功返回写入单元个数,失败返回0,写入后指针自动偏移res=fwrite(&menu[0],sizeof(MENUL_T),2,fp);//1.要写的数据地址 2.写入单元的大小 3.写入的单元个数 4.写入的文件指针fflush(fp); //刷新,将写入的数据保存到文件中fseek(fp,2*sizeof(MENU_T),0);//指针偏移1.文件指针 2.偏移量 3.指针偏移0-从头偏移 1-从当前位置 2-从尾巴rewind(fp); //文件指针定位到头//从文件读取数据到内存中,成功返回读取的单元个数,失败返回0,读取后指针自动偏移res=fread(&menu[3],sizeof(MENU_T),1,fp); //读出数据,从fp指向的文件读取数据存入到user[1]//1.读出数据要保存的地址 2.读出单元的大小 3.读出的单元数 4.要读取的文件的指针fclose(fp);//关闭文件
文件相关的封装函数
//打开或新建一个文件
FILE *file_open(char *name)
{//定义一个文件类型的指针,返回指针FILE *fp=NULL;fp=fopen(name,"rb+"); //r+:打开一个不存在的文件,返回NULL,打开成功返回文件指针if(fp == NULL){fopen(name,"wb+");//w+ 如果打开一个不存在的文件,建立一个新的文本文件;打开一个存在的文件,也会新建}return fp;
}/*
函数功能:从文件里面读取数据保存到链表中
函数参数:文件指针,服务每一块数据单元的大小,(菜谱、员工、台桌)
*/
void *File_read(FILE * fp,int size)
{//创建链表LIST_T *head=NULL;void *data=NULL; //保存数据的地址head=List_Init();data=malloc(size);memset(data,0,size);//从文件读取数据,不知道文件有多少数据,使用循环读取while(fread(data,size,1,fp)){//存入链表List_Add(head,data);//重新开空间并初始化data=malloc(size);memset(data,0,size);}return head;
}//将整条链表中的数据写入文件
void File_write(FILE * fp,int size,LIST_T *head)
{LIST_T *ptemp=head->pnext;rewind(fp);while(ptemp != NULL){fwrite(ptemp->pdata,size,1,fp);fflush(fp);ptemp=ptemp->pnext;}
}
二、上课没有听懂或者没有理解的地方
无
三、当天学习的收获
学会了使用文件永久保存数据
四、作业的思路、不会的地方
按上课讲的思路写
五、其他需要反馈的问题
无
六、心得体会
最近学了挺多新知识,要好好消化理解
200822C阶段一文件相关推荐
- mfgtools工具BootStrap阶段使用文件的介绍
目录 1.概述 2.4个文件 2.1 uboot 2.2 kernel 2.3 dtb 2.4 rootfs 2.5 其他 2.6 kernel的编译 2.7 ramdisk的制作 1.概述 mfgt ...
- oracle查询数据库启动时的参数文件,【Oracle】数据库启动阶段参数文件、控制文件的问题处理...
Oracle启动分三个阶段: nomount: 首先查找参数文件(pfile/spfile),根据文件创建实例.Nomount的过程是启动数据库实例的过程. 没有参数文件无法nomount mount ...
- 210106阶段三 文件I/O
目录 一.学习的知识点 Linux 文件I/O Windows和Linux对文件管理的差异 文件读写 open系统调用 write系统调用 read系统调用 lseek系统调用 创建目录 mkdir系 ...
- JavaSE各阶段练习题----文件和IO
1.键盘录入一个文件夹路径,删除该文件夹(包含文件夹内容) import java.io.File; public class Test01_删除该文件夹 { public static void m ...
- springmvc整合mybatis之准备阶段与文件配置
文章出处:课程资料 web.xml等配置文件的解释:打开博客 为了更好的学习 springmvc和mybatis整合开发的方法,需要将springmvc和mybatis进行整合. 整合目标:控制层采用 ...
- python处在哪个阶段_python 基础复习
1.简述cpu.内存.硬盘的作用 cpu (1)cpu:处理逻辑运算.算术运算 (2)cpu:接受指令传给电脑硬件,让其运行 内存: (1)内存:从硬盘中读取数据,供其cpu调取指令运行,短暂的存贮数 ...
- AJAX+JSF组件实现高性能的文件上载
一. 引言 基于浏览器的文件上传,特别是对于通过<input type="file">标签包含到Web页面来实现上传的情况,还存在较严重的性能问题.我们知道,超过10M ...
- 第2周第4课:set_uid、set_gid、stick_bit、软(硬)链接文件
2019独角兽企业重金招聘Python工程师标准>>> 2.18 特殊权限set_uid 权限的标准写法是4位数,第1位表示特殊权限. 该权限仅针对二进制可执行文件,使文件在执行阶段 ...
- 文件特殊权限suid、sgid、stick_bit、硬链接、软链接
2019独角兽企业重金招聘Python工程师标准>>> 第二章 文件.目录管理 2.18 特殊权限之 suid SUID的作用就是:让本来没有相应权限的用户运行这个程序时,可以访问没 ...
最新文章
- 制药行业智能化发展现状趋势及建议
- 关于B站除夕夜被攻击
- 阿里 RocketMQ 如何让双十一峰值之下 0 故障?
- 无法想mysql进行插入_mysql 无法插入中文
- DWZ富客户端框架设计思路与学习建议
- ajax请求在线库,跨域 jQuery库ajax请求
- 【mysql】使数据表ID连续的两个方法
- Android上的APP图标常见尺寸规范
- 叉乘点乘混合运算公式_Word打公式太麻烦?十分钟带你零基础上手LaTex数学公式...
- PP实施经验分享(3)——MRP运行问题常用解决方式
- 解密新晋信息窃取木马Spymel
- 《全局异常捕获》劝劝潘子吧,别再用trycatch来处理异常了
- sicily 1050——5个数通过加减乘除运算得到目标数
- 远程工作的五个层次 – 以及为什么您可能处于第2层
- Python:教你如何写一个测量网速的小工具
- 视频号扩展链接一键转换文章链接
- 为什么需要 Kubernetes 准入控制器
- 《龙武》9.15正式上线链游玩家平台 | 再续仙侠、血雨江湖
- 快手如何引流的话术?在快手引流精准粉丝的技巧
- Ubuntu下安装Microsoft Teams