之前学习过标准IO的基本概念,又接触文件IO。那么,什么是文件IO呢?
一、文件IO
- posix(可移植操作系统接口)定义的一组函数
- 不提供缓冲机制, 每次读写操作都引起系统调用
- 核心概念是文件描述符
- 访问各种类型文件
- Linux下, 标准IO基于文件IO实现
更直接一点的讲,文件IO是不经过缓存机制,直接操作文件描述符的一组IO操作
关于文件IO与标准IO的区分参考链接:https://blog.csdn.net/big_bit/article/details/51804391
文件IO:文件IO称之为不带缓存的IO(unbuffered I/O)。不带缓存指的是每个read,write都调用内核中的一个系统调用。也就是一般所说的低级I/O——操作系统提供的基本IO服务,与os绑定,特定于*nix平台。
什么是文件描述符?
每个打开的文件都对应一个文件描述符 ,文件IO的操作是通过文件描述符完成的。文件描述符从0开始分配, 依次递增
系统都预定义了三个文件描述符0、1和2,其中0是标准输入,1是标准输出,2是标准错误输出,它们在unistd.h
中分别被定义为:STDIN_FILENO
、STDOUT_FILENO
和STDERR_FILENO
。
二、使用函数 函数名
open 打开文件
close 关闭已打开文件
read 从文件读
write 向文件写
lseek 定位文件
//////////////
关于目录文件函数
opendir 打开目录文件
readdir 读取目录文件内容
closedir 关闭目录文件
////////
stat/lstat/fstat 获取文件属性
函数详情可以通过`man`命令查询帮助手册
man open