IO 缓存与函数 5.9

这篇具有很好参考价值的文章主要介绍了IO 缓存与函数 5.9。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

IO,进程创建、线程的创建、线程间通信、进程间通信

文件类型:

​ 普通文件: -

​ 目录文件: d

​ 块设备文件: b (存储块)

​ 字符设备文件: c (鼠标、键盘、显示器、摄像头、串口)

​ 链接文件: l (快捷方式)

​ 管道文件: p (进程间通信,有名管道 通信的文件)

​ BSD套接字文件文件: s

系统调用

频繁调用效率低,由用户模式切换内核模式,耗时长,一个程序调用一个接口,多个程序要调用多个接口

是内核的一部分,用户直接访问内核提供的接口

提高系统的安全性,方便应用程序的移植,提升一定的编程效率

C库函数

为了实现某个功能的api封装集合

C库函数内部效率更高,内部有可能调用多个函数,带缓存由FILE*存储

是用户空间的一部分,在系统调用基础上进一步封装的接口

极大提高编程效率

便于应用程序的移植

标准IO

标准的输入输出:input/output:对文件的输入输出

标准IO由 ANSI C库为标准:是在系统调用基础上进一步封装的库

方便用户操作标准IO

文件指针:

FILE*类型的指针,指向 内存中 存储操作文件信息的结构体

FILE*也被称为 流指针。

所有标准IO都围绕stream流进程

流:简单的从程序中 移进移出的字节流stream,分为文本流和二进制流

文本流:在传输的过程中以字符形式存在
		2001--------50 48 48 49
		
二进制流:流中处理的是二进制序列
		2001--------00000111 11010001

文件缓冲:

先将文件缓冲存储到缓冲区,装满缓冲区之后 再一齐调用write和read存到(disk)磁盘中

标准IO之缓存类型(高级磁盘IO)

1.全缓存:当使用fflush或者缓冲区满的时候,才进行刷新缓存。

2.行缓存:当遇见‘\n’或者fflush或者缓冲区满的时候,才进行刷新缓存

3.不带缓存:stderr

缓存操作接口函数:

  1. void setbuf(FILE* stream,char *buf);

    功能:

    ​ 设置stream流的缓存空间为buf这个地址空间

    当buf为NULL,表示关闭缓存

    参数:

    ​ stream:某个文件流地址

    ​ buf :用户空间首地址(数组空间首地址)

    返回:

    ​ 无

打开标准IO流:

1.函数原型

FILE *fopen(const char *path,const char *mode);

功能:

​ 打开或者创建打开一个文件,得到文件流指针。

参数:

​ path:待操作的文件名(包含路径)

​ mode:文件的操作方式(r r+ w w+ a a+)

返回值:

​ 成功:文件流指针

​ 失败:NULL,并设置错误信息

作业

计算行缓存和全缓存的大小

	path:待操作的文件名(包含路径)

​ mode:文件的操作方式(r r+ w w+ a a+)

返回值:

​ 成功:文件流指针

​ 失败:NULL,并设置错误信息

作业

计算行缓存和全缓存的大小

编写程序计算文件的大小和文件的行数文章来源地址https://www.toymoban.com/news/detail-438562.html

到了这里,关于IO 缓存与函数 5.9的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IO 与进程线程

    2023年05月28日
    浏览(29)
  • IO进程线程Day8

    使用信号灯集完成三个进程的同步,A进程输出字符A,B进程输出字符B,C进程输出字符C,要求输出结果为ABCABCABCABCABC...

    2024年01月25日
    浏览(25)
  • IO进程线程作业day2

    使用fread和fwrite完成两个图片文件的拷贝 现象展示:  使用read、write完成两个图片文件的拷贝 效果图   3 将时间在文件中跑起来 1、17:30:41 2、17:30:42 3、17:30:43 键入ctrl+c,结束进程后 ... 4、17:35:28 5、17:35:29 效果图:  思维导图

    2024年02月19日
    浏览(28)
  • IO进程线程day4作业

    代码: 运行结果:  

    2024年02月21日
    浏览(43)
  • IO进程线程day8(2023.8.6)

    管道的原理: 有名管道的特点:  信号的原理: 练习1:pipe 功能:创建一个无名管道,同时打开无名管道的读写端 原型: 参数: 返回值: 小练:  练习2:mkfifo 功能:创建一根有名管道 原型: 参数: 返回值: 练习3:操作有名管道 功能:操作有名管道与用文件IO操作普通

    2024年02月14日
    浏览(29)
  • IO进程线程day3(2023.7.31)

    文件描述符概念: 练习1:用fread和fwrite实现文件拷贝  练习2:time 功能:从1970-1-1日至今的秒数 原型: 参数: 返回值: 练习3:localtime 功能:将1970-1-1日至今的秒数转换成日历格式 原型: 参数: 返回值: 例题:  练习4:文件描述符的总量 练习5:open 功能:打开一个文件

    2024年02月14日
    浏览(20)
  • Java并发(1)--线程,进程,以及缓存

    进程 进程是程序的一次执行过程,系统程序的基本单位。有自己的main方法,并且主要由主方法运行起来的基本上就是进程。 线程 线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享 堆

    2024年04月16日
    浏览(36)
  • 操作系统进程线程(一)—进程线程协程区别、多进程多线程、进程调度算法、进程线程通信

    定义上 进程: 资源分配和拥有 的基本单位,是调度的基本单位。 运行一个可执行程序会创建一个或者多个进程;进程就是运行起来的程序 线程:程序 执行 基本单位,轻量级进程。 每个进程中都有唯一的主线程 ,主线程和进程是相互依赖的关系。 协程: 用户态 的轻量级

    2024年02月01日
    浏览(39)
  • Android进程类型及优先级(前台进程/可见进程/服务进程/缓存进程/空进程)

    Android 进程优先级 :前台进程 可见进程 服务进程 缓存进程 空进程 ; 关键优先级进程 : 活动进程 ; 高优先级进程 : 可见进程 , 服务进程 ; 低优先级进程 : 后台进程 , 空进程 ; Android 系统中会尽量保证优先级高的进程的存在时间尽可能长 ;如果资源不足 ( 这里的资源最主要的是内

    2024年04月12日
    浏览(24)
  • 什么是线程?线程和进程的关系?如何创建/查看线程?

    1.1.1 什么是线程 进程进一步细化为线程, 是程序内部的一条执行路径. 一个进程中至少有一个线程. 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间\\\"同时\\\"执行多份代码. 1.1.2 线程存在的意义 ① “并发编程\\\"成为\\\"刚需” 单核 CPU 的发展遇到了瓶颈. 要想提高算力, 就

    2024年02月15日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包