嵌入式Linux文件处理
Linux把设备和目录都可以看做文件,文件可分为4种类型:普通文件、目录文件、链接文件、设备文件。
一、文件描述符:
- Linux用文件描述符来访问文件,它是一个非负整数,一个索引值,并指向内核中每个进程打开文件的记录表。
- 每打开一个现存文件或者新建一个文件时,内核会向文件返回一个进程描述符。
- 读写文件时,也需要使用文件描述符来指定待读写的文件。
- 一个进程启动时,要打开三个文件:标准输入、标准输出和标准错误处理。文件描述符分别为0、1和2。
二、系统调用
系统调用是指操作系统提供给用户程序的一组“特殊”接口,用户程序可以通过这组“特殊”接口来获得操作系统内核提供的特殊服务。
在linux中用户不能直接访问内核提供的服务。
为了更好的保护内核空间,将程序的运行空间分为内核空间和用户空间,他们运行在不同的级别上,在逻辑上时相互隔离的。
为什么需要系统调用?
- 系统调用可以为用户空间提供访问硬件资源的统一接口。
- 系统调用可以对系统进行保护,保证系统的稳定和安全。
三、文件处理
- 系统调用(system call):基于Linux的系统调用,由操作系统的系统调用完成对文件的操作。
- 库函数调用(Library functions):基于C语言的库函数,标准C库函数提供的文件操作系统如fopen,fread,fwrite,fclose,fflush,fseek等。独立于操作系统。
Linux通过系统调用进行文件处理,主要指进行打开文件、读文件、写文件及关闭文件等I/O操作。有以下几个函数:open()、close()、read()、write()、sleek():