1.Linux文件的概念
Linux系统中,一切皆是文件。无论是键盘、鼠标、显示屏以及其它设备,在Linux系统眼中,它们都只是文件,仅此而已。这就意味着计算机程序可以像使用文件一样操控所有的外设。操作文件(外设)的函数还是比较多的,但是常用的就那么几个:open、close、read、write、lseek、ioctl等
有三个比较重要的设备文件,可以先了解以后肯定会用到:
/dev/console 系统控制台
/dev/tty 访问不同的物理设备
/dev/null 空设备,所有写该设备的输出都将被丢弃
2.Linux文件描述符的概念
文件描述符是一个非负的整数,它是一个索引值,并指向在内核中每个进程打开文件的记录表。当打开一个现存文件或创建一个新文件时,内核就向进程返回一个文件描述符;当需要读写文件时,也需要把文件描述符作为参数传递给相应的函数。
有三个比较重要的文件描述符,以后肯定会使用:
0:标准输入 STDIN_FILENO
1:标准输出 STDOUT_FILENO
2:标准错误 STDERR_FILENO
3.常用文件IO操作函数介绍
open:函数是用于打开或创建文件。在打开或创建文件时可以指定文件的属性及用户的权限等各种参数。
close:函数是用于关闭一个被打开的文件。当一个进程终止时,所有被它打开的文件都由内核自动关闭,很多程序都使用这一功能而不显示地关闭一个文件。
read:函数是用于将从指定的文件描述符中读出的数据放到缓存区中,并返回实际读入的字节数。若返回0,则表示没有数据可读,即已达到文件尾。读操作从文件的当前指针位置开始。当从终端设备文件中读出数据时,通常一次最多读一行。
write:函数是用于向打开的文件写数据,写操作从文件的当前指针位置开始。对磁盘文件进行写操作,若磁盘已满或超出该文件的长度,则write函数返回失败。
lseek:函数是用于在指定的文件描述符中将文件指针定位到相应的位置。它只能用在可定位(可随机访问)文件操作中。管道、套接字和大部分字符设备文件是不可定位的,所以在这些文件的操作中无法使用lseek调用。
ioctl:函数提供了一个用于控制设备及其描述行为和配置底层的服务的接口。
4.获得某一个函数的具体使用方法
Linux终端下输入命令:man 2 + 具体函数名
5.文件IO函数的具体运用例子
也就是调用以上几个文件操作API,代码我就不贴了,有需要自行下载:Linux文件IO操作例程