前言
本次学习linux下的文件IO与标准IO。学习IO是为了存储数据以及操作文件。linux下一切皆文件,共分为7大类。
- 常规文件,即file, 文本文件,二进制文件、图片等常见文件
d 目录文件
b block device 即块设备文件,如硬盘;支持以block为单位进行随机访问,通常为外设
c character device 即字符设备文件,如键盘支持以character为单位进行线性访问,通常为外设
l symbolic link 即符号链接文件,又称软链接文件
p pipe 即命名管道文件
s socket 即套接字文件,用于实现两个进程进行通信
标准IO和文件IO的区别
区别一:是否有缓冲机制。标准IO有缓冲(全缓冲、行缓冲、不缓冲),文件IO无缓冲
区别二:函数来源不同,也就是生产厂家不同。标准IO来自于标准c库,文件IO来自于LINUX内核,系统调用。
区别三:这两种IO操作文件的入口不一样。标准IO操作的文件入口是文件流,文件IO操作的文件入口是文件描述符。
区别四:标准IO是凌驾于所有操作系统之上的IO,而文件IO是跟操作系统有关的。
文件被打开的时候,会默认具备3个类:
stdin(标准输入--》键盘) -->0 stdout(标准输出-》终端) --->1 stderr(标准出错--》
标准IO操作文件的函数
打开文件 fopen
关闭文件 fclose
从文件中按字符读取 fgets
往文件中按字符写入 fputs
按照行操作 fgets与fputs
按照块操作 fread与fwrite
文件流位置相关函数 fseek,ftell,rewind
特性函数 perroe,feof
文件IO操作文件相关函数
打开文件 open
关闭文件 close
写入文件 write
读取文件 read
文件流位置偏移函数 lseek
空洞文件
操作目录函数
打开目录 opdir
关闭目录 closedir
读取目录 readdir