目录

  • 一、学习的知识点
    • 文件
      • 定义
      • 文件的操作
      • 文件相关的封装函数
  • 二、上课没有听懂或者没有理解的地方
  • 三、当天学习的收获
  • 四、作业的思路、不会的地方
  • 五、其他需要反馈的问题
  • 六、心得体会

一、学习的知识点

文件

定义

文件一般指存储在外部介质(如磁盘磁带)上数据的集合。操作系统是以文件为单位对数据进行管理的。从操作系统的角度看,每一个与主机相连的输入输出设备看作是一个文件。

文件的操作

在缓冲文件系统中,每个被使用的文件都要在内存中开辟一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阶段一文件相关推荐

  1. 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 ...

  2. oracle查询数据库启动时的参数文件,【Oracle】数据库启动阶段参数文件、控制文件的问题处理...

    Oracle启动分三个阶段: nomount: 首先查找参数文件(pfile/spfile),根据文件创建实例.Nomount的过程是启动数据库实例的过程. 没有参数文件无法nomount mount ...

  3. 210106阶段三 文件I/O

    目录 一.学习的知识点 Linux 文件I/O Windows和Linux对文件管理的差异 文件读写 open系统调用 write系统调用 read系统调用 lseek系统调用 创建目录 mkdir系 ...

  4. JavaSE各阶段练习题----文件和IO

    1.键盘录入一个文件夹路径,删除该文件夹(包含文件夹内容) import java.io.File; public class Test01_删除该文件夹 { public static void m ...

  5. springmvc整合mybatis之准备阶段与文件配置

    文章出处:课程资料 web.xml等配置文件的解释:打开博客 为了更好的学习 springmvc和mybatis整合开发的方法,需要将springmvc和mybatis进行整合. 整合目标:控制层采用 ...

  6. python处在哪个阶段_python 基础复习

    1.简述cpu.内存.硬盘的作用 cpu (1)cpu:处理逻辑运算.算术运算 (2)cpu:接受指令传给电脑硬件,让其运行 内存: (1)内存:从硬盘中读取数据,供其cpu调取指令运行,短暂的存贮数 ...

  7. AJAX+JSF组件实现高性能的文件上载

    一. 引言 基于浏览器的文件上传,特别是对于通过<input type="file">标签包含到Web页面来实现上传的情况,还存在较严重的性能问题.我们知道,超过10M ...

  8. 第2周第4课:set_uid、set_gid、stick_bit、软(硬)链接文件

    2019独角兽企业重金招聘Python工程师标准>>> 2.18 特殊权限set_uid 权限的标准写法是4位数,第1位表示特殊权限. 该权限仅针对二进制可执行文件,使文件在执行阶段 ...

  9. 文件特殊权限suid、sgid、stick_bit、硬链接、软链接

    2019独角兽企业重金招聘Python工程师标准>>> 第二章 文件.目录管理 2.18 特殊权限之 suid SUID的作用就是:让本来没有相应权限的用户运行这个程序时,可以访问没 ...

最新文章

  1. 制药行业智能化发展现状趋势及建议
  2. 关于B站除夕夜被攻击
  3. 阿里 RocketMQ 如何让双十一峰值之下 0 故障?
  4. 无法想mysql进行插入_mysql 无法插入中文
  5. DWZ富客户端框架设计思路与学习建议
  6. ajax请求在线库,跨域 jQuery库ajax请求
  7. 【mysql】使数据表ID连续的两个方法
  8. Android上的APP图标常见尺寸规范
  9. 叉乘点乘混合运算公式_Word打公式太麻烦?十分钟带你零基础上手LaTex数学公式...
  10. PP实施经验分享(3)——MRP运行问题常用解决方式
  11. 解密新晋信息窃取木马Spymel
  12. 《全局异常捕获》劝劝潘子吧,别再用trycatch来处理异常了
  13. sicily 1050——5个数通过加减乘除运算得到目标数
  14. 远程工作的五个层次 – 以及为什么您可能处于第2层
  15. Python:教你如何写一个测量网速的小工具
  16. 视频号扩展链接一键转换文章链接
  17. 为什么需要 Kubernetes 准入控制器
  18. 《龙武》9.15正式上线链游玩家平台 | 再续仙侠、血雨江湖
  19. 快手如何引流的话术?在快手引流精准粉丝的技巧
  20. Ubuntu下安装Microsoft Teams

热门文章

  1. 【转】别人整理的DP大全
  2. MQ消息队列产品测试
  3. 深入理解 Angular 变化检测(change detection)
  4. zookeeper+kafka配置
  5. ajax上传plupload的使用
  6. shiro +spring + spring mvc+ mybatis整合【转】
  7. 【转】增强 scite 编辑器的代码提示功能
  8. ORACLE的sign函数和DECODE函数
  9. 多继承有什么坏处,为什么java搞单继承,接口为什么可以摈弃这些坏处
  10. WPF中的容器控件——canvas