linux操作系统day2(io文件处理)

二进制文件读写:  fread()/fwrite()

读:

size_t  fread(void  *ptr,  size_t size, size_t nmemb, FILE *stream);

功能:

      从指定的stream流对象中获取nmemeb个大小为size字节的数据块到ptr
      所在的本地内存中。

参数:

      ptr    要存储数据的本地内存一般是数组或者结构体指针
      size   单个数据块的元数据大小。最小单元的大小
      nmemb  要获取的数据块的个数,拷贝的数据块个数。
      stream 要获取数据的源文件流对象,如果是stdin表示从
      键盘获取数据,如果是fp文件则表示从普通文件获取。

返回值:

        成功 小于等于nemeb的整数,表示获取的数据长度
        失败 小于0,结尾 0;

写:

size_t fwrite(const void  *ptr,  size_t  size,size_t nmemb, FILE *stream);

功能:

      从ptr所在本地内存中取出nmemb个大小为size的数据块写入到stream流对应
      的文件流对象中。

参数:

      ptr 要写的数据块地址,一般是数组或者结构体指针
      size  要写的数据块元数据大小,单位是字节
      nmemb 要写的数据块的个数
      stream 要写的目标文件流对象。如果是stdout则表示数据会
      写到终端屏幕显示,如果是fp的普通文件则会写入到文件中。


返回值:

              成功 小于等于nmemb 的个数。
              失败 <0

struct person
    {
        char name[20];
        int age;
        char sex;
        char addr[100];
    }; 
    
    //保存到一个文件中?
    //fwrite();
    
    
    person per;sizeof(per)

注:
  fread fwrite 往往都是 处理 ,数据格式相对固定的数据 
  
  struct {
      
  };

                                                                打印构造体内容

 计算bmp图片文件的高和宽


定位操作:

1.fseek

int fseek(FILE *stream, long offset, int whence);//long -->signed long 


    功能:


          将stream流文件中的文件指针
          从whence位置开始
          偏移offset字节的长度

   
    参数:


          stream  要移动文件指针的目标文件流对象。 
               注意:不支持设备文件,一般用于普通文件。  
          offset  
                  要在文件内偏移的距离,单位字节。
                  如果值为整数,则向文件末尾偏移
                  如果值为负数,则向文件开头偏移
                  
          whence  偏移的起始位置,由系统定义的三个宏开始。
            SEEK_SET  文件的开头位置   offset 只能是正值 
            SEEK_CUR  文件的当前位置   offset 可正 可负 
                                       但是 
                                       如果当前位置与 SEEK_SET重合 offset 不能是负的 
                                       
            SEEK_END  文件的末尾位置   offset 可正 可负 
                                       正 --- 空洞文件 

                          
    返回值: 


        成功: 返回 0
        失败:  -1;
        eg:
        
        fseek(fp,100,SEEK_SET); //从头开始往后偏移100个字节 
        fseek(fp,-100,SEEK_SET);
        

如果从文件的指定位置向后偏移过程中已经超过了文件
的当前末尾位置,则会自动以'\0'来填充文件内容,从
而形成一种被称为"空洞文件" 的特殊文件。

产生空洞文件的操作:


1.进行偏移 
2.做一次写操作 
  fputc(0,fp);
  
  .downloading
  
用途:
   提前抢占磁盘空间

//获取文件大小:
     fseek(fp,0,SEEK_END);
     len = ftell(fp);
//定位到文件开头      
fseek(stream,0L,SEEK_SET); <==>rewind(fp);
//定位到文件尾部 
fseek(stream,0L,SEEK_END);

 2.    ftell

        long ftell(FILE *stream);
        
        功能:获取文件位置指示器的偏移量
        参数:求偏移量的文件流指针
        返回值:文件位置指示器到文件开头的偏移字节数

 3. rewind(fp);

        void rewind(FILE *stream)
        功能:
             获取当前文件流指针的具体位置,
             一般以文件开头到当前指针的字节数为返回值。
             
        参数:stream 要返回指针距离的文件流对象
        返回值:void

                                                                移动文件指针写入数据


      

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/403111.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python Scrapy】分布式爬虫利器

在当今信息爆炸的时代&#xff0c;获取大规模数据对于许多应用至关重要。而分布式爬虫作为一种强大的工具&#xff0c;在处理大量数据采集和高效爬取方面展现了卓越的能力。 本文将深入探讨分布式爬虫的实际应用场景&#xff0c;通过代码示例演示其在提升爬取效率、保障系统稳定…

3个wordpress中文企业主题模板

农业畜牧养殖wordpress主题 简洁大气的农业畜牧养殖wordpress主题&#xff0c;农业农村现代化&#xff0c;离不开新农人、新技术。 https://www.jianzhanpress.com/?p3051 老年公寓wordpress主题 浅绿色简洁实用的老年公寓wordpress主题&#xff0c;适合做养老业务的老年公…

day09-MongoDB

文章目录 day09-MongoDB一、回顾1.1. 行为实战核心要点说明 二、评论系统2.1 MongoDB2.1.1 MongoDB简介①简介②体系结构与术语 2.1.2 安装与连接2.1.3 Springboot整合MongoDB①引入依赖②添加服务端配置③准备实体类④测试-新增⑤测试-查询⑥测试-更新测试-删除 2.2 app端评论…

配置redis-cell 控流插件

1.下载绑定资源也可以到git上下载 https://gitee.com/dianjinshi/springboot-nginx.git 2.创建文件夹 mkdir redis-cell 3.上传到linux上并进入文件夹解压 4.拷贝 docker cp libredis_cell.so redis:/usr/local/etc/redis 5.重启redis docker restart redis 6.进入redis…

5 步轻松上手,教你从 0 到 1 落地 Jmeter 接口自动化脚本!

Jmeter是进行接口测试的一款非常主流的工具&#xff0c;但绝大部分测试工程师&#xff0c;对于Jmeter接口测试脚本整理都是一知半解的。今天这篇文章&#xff0c;就以一个金融项目中接口为例&#xff0c;通过简单5步&#xff0c;教大家如何0代码编写Jmeter接口自动化脚本&#…

B端系统:工作台页面,如何从平庸走向出众

Hi&#xff0c;大家好&#xff0c;我是贝格前端工场&#xff0c;从事8年前端开发的老司机。大家看过很多平庸的工作台页面&#xff0c;但是仔细分析过平庸的表现吗&#xff0c;仔细思考过如何实现出众的效果吗&#xff1f;这篇文章为你解读。 一、工作台页面是什么&#xff0c;…

【进程概念】

目录 什么是在计算机运行的程序这么多运行的程序计算机是如何管理的先描述再组织 什么是在计算机运行的程序 对于一个在磁盘可执行的二进制文件&#xff0c;也可叫做可执行程序。对于一个可执行的程序&#xff0c;程序有自己的代码和数据。一旦运行起来&#xff0c;就会在计算…

第5讲:数组

第5讲:数组 1. 数组的概念2. 一维数组的创建和初始化2.1 数组创建2.2 数组的初始化2.3 数组的类型 3. ⼀维数组的使用3.1 数组下标3.2 数组元素的打印3.3 数组的输入 4. ⼀维数组在内存中的存储5. sizeof计算数组元素个数6. 二维数组的创建6.1 二维数组的概念6.2 二维数组的创建…

从大厂裸辞后成为自由职业者,一年后我怎么样了?

深耕技术领域7年&#xff0c;前前后后也做过不少副业&#xff0c;最近我一直在思考什么副业才是对自己有价值的&#xff0c;可持续的&#xff0c;甚至是可增长的。 22年我所在团队的一个项目解散了&#xff0c;领导问我想拿钱走还是转岗&#xff0c;想想自己也在这个公司干了5…

【国产MCU】-CH32V307-通用定时器(GPTM)-单脉冲模式

通用定时器(GPTM)-单脉冲模式 文章目录 通用定时器(GPTM)-单脉冲模式1、单脉冲模式介绍2、驱动API介绍3、单脉冲使用实例本文将详细介绍如何使用CH32V307通用定时器的单脉冲模式。 1、单脉冲模式介绍 单脉冲模式可以响应一个特定的事件,在一个延迟之后产生一个脉冲,延迟…

超市售货|超市售货管理小程序|基于微信小程序的超市售货管理系统设计与实现(源码+数据库+文档)

超市售货管理小程序目录 目录 基于微信小程序的超市售货管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、微信小程序前台 2、管理员后台 &#xff08;1&#xff09;商品管理 &#xff08;2&#xff09;出入库管理 &#xff08;3&#xff09;公告管理 …

Python爬虫实战入门:爬取360模拟翻译(仅实验)

文章目录 需求所需第三方库requests 实战教程打开网站抓包添加请求头等信息发送请求&#xff0c;解析数据修改翻译内容以及实现中英互译 完整代码 需求 目标网站&#xff1a;https://fanyi.so.com/# 要求&#xff1a;爬取360翻译数据包&#xff0c;实现翻译功能 所需第三方库 …

【OpenFeign常用配置】

OpenFeign常用配置 快速入门&#xff1a;1、引入依赖2、启用OpenFeign 实践1、引入依赖2、开启连接池功能3、模块划分4、日志5、重试 快速入门&#xff1a; OpenFeign是一个声明式的http客户端&#xff0c;是spring cloud在eureka公司开源的feign基础上改造而来。其作用及时基于…

【C++精简版回顾】5.字符串

1.字符串的四种初始化方式 string str "ilove"; string str1("ilove"); string str2(str1); string str3 str1; 2.针对字符串的一些函数 &#xff08;1&#xff09;字符串长度 cout<<str.length()<<endl;&#xff08;2&#xff09;查找字…

Android platform tool中d8.bat不生效

d8.bat因找不到java_exe文件&#xff0c;触发EOF d8.bat中之前代码为&#xff1a; set java_exe if exist "%~dp0..\tools\lib\find_java.bat" call "%~dp0..\tools\lib\find_java.bat" if exist "%~dp0..\..\tools\lib\find_java.bat" …

PowerDesigner 安装

PowerDesigner 安装汉化破解使用过程 - 沦陷 - 博客园 (cnblogs.com)https://www.cnblogs.com/huangting/p/12654057.html

MacBook安装Ansible

MacBook安装Ansible Ansible介绍 ansible是新出现的自动化运维工具&#xff0c;基于Python开发&#xff0c;集合了众多运维工具&#xff08;puppet、chef、func、fabric&#xff09;的优点&#xff0c;实现了批量系统配置、批量程序部署、批量运行命令等功能。 ansible是基于…

Fiddler工具 — 17.Fiddler进行弱网测试

1、什么是弱网测试 从测试角度来说&#xff0c;需要额外关注的场景远不止断网、网络故障等情况&#xff0c;还需要关注弱网情况下测试。 弱网测试属于健壮性测试的内容。随着国内移动端迅猛发展&#xff0c;大大增加用户碎片化使用使用APP的。想象一下&#xff0c;用户在地铁…

leetcode hot100 完全平方数

本题中&#xff0c;是给一个整数n&#xff0c;让用完全平方数凑出这个整数&#xff0c;注意&#xff0c;题中给了n的范围&#xff0c;是大于等于1的&#xff0c;也就是说&#xff0c;dp[0]我们可以先不考虑。 整个问题可以抽象成完全背包问题的变形形式&#xff0c;物品就是这…

web前端安全性——CSRF跨站请求伪造

承接上篇讲述的XSS跨站脚本攻击 跨站请求伪造&#xff08;CSRF&#xff09; 1、概念 CSRF(Cross-site request forgery) 跨站请求伪造:攻击者诱导受害者进入第三方网站&#xff0c;在第三方网站中&#xff0c;向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注…