Linux下(包括Unix)文件的涵义很广泛,文件概念不仅仅包含通常意义的保存在磁盘的各种格式的数据,还包含目录,甚至是各种各样的设备如键盘、鼠标、标准输出等,”Unix下一切皆文件“。
Linux下文件系统是对复杂系统进行合理抽象的一个经典例子,它通过一套统一的借口函数对不同的文件进行操作。如open()函数不仅可以打开ext2类型的文件,还可以打开fat32类型的文件,甚至是串口设备和显卡等。
Unix下文件主要分为以下几种:
普通文件: 如保存在磁盘上的C文件等,这种文件的特性是数据在存储设备上存放,内核提供了对数据的抽象访问,此种文件为一种字节流,访问接口完全独立于在磁盘上的存储数据。
字符设备文件:是一种能像文件一样被访问的设备,如控制台console、串口等
块设备文件:磁盘是此类设备文件的典型代表。与普通文件的区别是操作系统对数据的访问进行重新的格式设计。
socket文件:Unix中通过网络进行通信的方式,对网络的访问可以通过文件描述符的抽象实现,访问网络和访问普通文件类似。
Linux用户空间对各种文件的操作是类似的,因为虚拟文件系统VFS提供了同一套的API。
阅读(688) | 评论(1) | 转发(0) |