软件编程2-标准IO

一、IO基本概要

1、概念

        IO(Input/Output)指计算机系统中数据的输入和输出操作,涉及与外部设备(如磁盘、网络、终端等)的数据交换。程序通过IO接口读取外部数据(Input)或将内部数据写入外部设备(Output)

2、Linux系统中一切皆是文件

3、IO操作的对象是文件

4、文件分类

  • b(block,块设备文件)
    • 按块扫描信息的文件,称为块设备文件。通常存储类型的设备通常为块设备文件
    • 文件IO
  • c(character,字符设备文件)
    • 按字符扫描信息的文件,称为字符设备文件。一般设备通常为字符设备文件
    • 文件IO
  • d(directory,目录文件)
    • 目录文件,存放文件的文件夹
    • 目录IO/文件IO
  • -(普通文件)
    • 存放信息的文件
    • 标准IO/文件IO
  • l(link,链接文件)
    • 操作文件等价于操作文件指向的文件
    • 链接IO/文件IO
  • s(socket,套接字文件)
    • 用来进程间通信
    • 文件IO
  • p(pipe,管道文件)
    • 用来进程间通信
    • 文件IO

二、标准IO

1、概念

        通常用来操作普通文件

2、普通文件类型

  1. ASCII码文件:文件中的所有内容均为能够在屏幕上显示的ASCII码字符
    1. 程序、文本文件均为ASCII码文件
  2.  二进制文件:文件中的所有内容均为数据对应的二进制形式存放(包含一些不能在界面上显示的内容)
    1. ASCII码文件也是二进制文件
    2. 图片、音视频、压缩包均为二进制文件

3、标准IO接口

        1. fopen/fclose

        2. fgetc/fputc

        3. fgets/fputs

        4. fscanf/fprintf

        5. fread/fwrite

        6. fseek/rewind/ftel

4、操作步骤

        1. 打开文件

        2. 读写文件

        3. 关闭文件

5、文件的打开

(1)函数接口

(2)三种特殊的流

  • stdin:标准输入流
  • stdout:标准输出流
  • stderr:标准出错流
  • printf、puts、putchar都是通过stdout流实现在终端信息打印
  • scanf、gets、getchar都是通过stdin流实现获得终端信息
  • perror通过stderr流实现在终端打印出错信息

三、标准IO的缓存

1、 标准IO缓存的特点

        标准IO是一种有缓存的IO、效率高、实时性差

2、缓存的类型

(1)全缓存(4k):
  • 缓存区满刷新缓存
  • 刷新条件:
    • 缓存区满4k刷新
    • fflush函数强制刷新
    • fclose或者程序关闭刷新
  • 与文件建立的缓存一般为全缓存
(2)行缓存(假设1k):
  • 遇到\n刷新缓存区
  • 刷新条件:
    • 缓存区满1k刷新
    • 遇到\n刷新
    • fflush函数强制刷新
    • fclose或者程序关闭刷新
  • 与终端建立的缓存一般为行缓存(stdin、stdout均为行缓存)
(3)不缓存(0k):
  • 立即刷新不缓存
  • 刷新条件:
    • 不缓存立即刷新
  • 出错处理或者人机交互一般使用不缓存(stderr不缓存)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值