在linux系统中,文件的I/O分为两种类型,第一种类型是非缓冲式文件操作,主要是由系统调用提供,另一种是缓冲式I/O操作,主要是由C语言的标准输入输出库函数提供。这里学习一下非缓冲式文件I/O操作,下面简称I/O.
非缓冲的文件I/O
非缓冲式文件操作适用于小规模文件的读写,或者是实时设备,执行非缓冲式文件操作,应用程序能够立即得到数据。非缓冲式文件操作的函数主要是由系统调用提供。操作系统内核利用文件描述符来访问文件;文件标识符是一个非负整数,系统预留了3个文件标识符:
- 0 代表标准输入,即通过键盘输入
- 1 代表标准输出,即输出到终端
- 2 标准错误,系统中存放错误信息的堆栈
文件的读写与访问
1、open
int open(path,flag,mode);打开一个文件
函数的基本结构,path为文件路径,flag为一些参数,当文件是新建时mode用来指定文件访问属性;
flag常用值:O_RDONLY ; O_WRONLY ; O_RDWR ; 分别为只读,只写,读写方式
mode常用值: S_IRWXU ; S_IRWXG ; S_IRWXO ;分别代表用户,组,其他的读写执行权限;
2、creat
int creat(path,modo);创建一个文件,只写方式
参数与open相同;
相当于