嵌入式学习day24
IO
概念:
IO指input/output
Linux系统中一切皆是文件
IO操作的对象是文件
文件:
一段数据的集合
文件通常存放在外存中,掉电后数据不会丢失
分类:
b(block,块设备文件)
按块扫描信息的文件,通常存储类型的设备通常为块设备文件
文件IO
c(character,字符设备文件)
按字符扫描信息的文件,一般设备通常为字符设备文件
文件IO
d(directory,目录文件)
目录文件,存放文件的文件夹
目录IO/文件IO
-(普通文件)
存放信息的文件
标准IO/文件IO
l(link,链接文件)
链接IO/文件IO
操作文件等价于操作文件指向的文件
s(socket,套接字文件)
用来进程间通信
文件IO
p(pipe,管道文件)
用来进程间通信
文件IO
标准IO
通常用来操作普通文件
普通文件类型
ASCII码文件:文件中的所有内容均为能够在屏幕上显示的ASCII码字符
程序、文本文件均为ASCII文件
二进制文件:文件中所有内容均为数据对应二进制存放(包含不能在界面显示的内容)
ASCII码文件也是二进制文件
图片、音视频、压缩包均为二进制文件
标准IO的接口:
fopen/fclose
fgetc/fputc
fgets/fputs
fscan/fprintf
fread/fwrite
fseek/rewind/ftell
操作步骤:
①打开文件
②读写文件
③关闭文件
文件的打开
函数接口:
fopen:
fclose:
fputc:
ch = putchar()等价于fputc(ch, stdout)
fgetc:
ch = getchar()等价于fgetc(ch, stdin)
fputs:
fputs不会多打印\n字符
puts会多打印一个\n字符
fgets:
fgets不会去掉从终端接收的\n字符
gets会去掉从终端接收的\n字符
fprintf:
fscanf:
已经打开的三个特殊的流
stdin:标准输入流
stdout:标准输出流
stderr:标准出错流
printf、puts、putchar都是通过stdout流实现在终端信息打印
scanf、gets、getchar都是通过stdin流已实现获得终端信息
perror通过stderr流实现在终端打印出错信息
标准IO的缓存
标准IO缓存:
标准IO是一种有缓存的IO
效率高
实时性差
缓存的类型:
全缓存(4k):缓存区满刷新缓存
与文件建立的缓存一般为全缓存
刷新条件:
缓存区满4k刷新
fflush函数强制刷新
fclose或者程序关闭刷新
行缓存(1k):遇到\n刷新缓存区
与终端建立的缓存一般为行缓存(stdin、stdout)
刷新条件:
缓存区满1k刷新
遇到\n刷新
fflush函数强制刷新
fclose或者程序关闭刷新
不缓存(0k):立即刷新不缓存
出错处理或者人机交互一般使用不缓存(stderr不缓存)
man手册
章节:
1.标准命令
2.系统调用
3.库函数
4.设备说明
5.文件格式
6.娱乐
7.杂项
8.管理员命令
使用示例:
man 章节号 搜索内容