IO的学习笔记

目录

1.标准IO和文件IO区别:

1.标准IO:

2. 文件IO:

3.系统调用

4. 缓冲机制

全缓冲

行缓冲

无缓冲

2.标准IO

1.打开和关闭文件流

 1.打开fopen

2.关闭文件fclose

2.读写文件流

按字符读写文件

fputc()

fgetc()

按行读写文件

按对象读写文件

按格式化读写文件

3.文件流其他相关函数

1.feof()判断文件流是否到文件末尾

 2.fflush()收到清理缓冲区

 3.ftell()获得文件流的读写位置

 4.fseek()移动文件流的读写位置

5.rewind()


1.标准IO和文件IO区别:

1.标准IO:

  1. 标准IO是由ANSIC(ANSI美国国家标准协会及国际标准化组织(ISO))标准定义
  2. 只要操作系统安装了C库,标准I/O函数就可以调用,具有更好的移植性好
  3. 标准I/O可以减少系统调用(缓冲机制)的次数,提高系统效率。
  4. 标准I/O的核心对象是,每打开一个文件,就会创建FILE结构体描述该文件,我们把FILE称为流,标准I/O函数都基于流进行各种操作。

2. 文件IO:

  1. 遵循POSIX相关标准,任何兼容POSIX标准的操作系统上都支持文件I/O
  2. 文件I/O每次操作都会执行系统调用,好处:直接读写实际文件.坏处:频繁的系统调用会增加系统开销.
  3. 文件描述符,(一个非负整数),每打开一个文件系统会自动分配一个文件描述符

3.系统调用

不带OS系统开发: 裸机开发(C语言+位运算)    带OS系统开发: 应用开发   驱动开发

4. 缓冲机制

 

全缓冲

在这种情况下,当填满标准I/O缓冲区后才进行实际I/O操作.对于存放在磁盘上的普通文件,用标准I/O打开时默认时全缓冲的.

行缓冲

在这种情况下,当在输入和输出时遇到换行符时执行I/O操作。标准输入流和标准输出流使用行缓冲的典型例子。

无缓冲

不对I/O操作进行缓冲,即在对流的读写时会立刻操作实际的文件.

2.标准IO

文件流: 

 文本流:      

 二进制流:

Windows:  

                 文本流换行  ‘\r\n’

                          1023   ‘1’  ‘0’   ‘2’  ‘3’  --->分别转换成二进制存进去

                 二进制流换行  ‘\n’

                            1023 --->转成二进制

Linux下          文本流和二进制流无区别:

 

1.打开和关闭文件流

 1.打开fopen

参数1:文件名(可包含文件路径)

参数2:打开方式

返回值:打开成功返回文件流指针,失败则返回NULL

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

2.关闭文件fclose

 

2.读写文件流

  1. 按字符读写文件

 

fputc()

fgetc()

按行读写文件

fgets()

参数1:缓冲区的首地址

参数2:读取的字节数

参数3:文件流的指针

  1. 遇到’\n’结束,’\n’也读进了缓冲区

  1. 读取SIZE-1结束

 

fputs()

 

按对象读写文件

1.fwrite()

2.fread()

按格式化读写文件

fprintf()按格式化写入文件

 fscanf()读取文件

 

3.文件流其他相关函数

1.feof()判断文件流是否到文件末尾

 2.fflush()收到清理缓冲区

 3.ftell()获得文件流的读写位置

 4.fseek()移动文件流的读写位置

fseek(fp,0,SEEK_SET); //将文件流的读写位置移动的文件开头

5.rewind()

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值