文件类型
文件在文件系统中是一个最大的数据单位,它描述了一个对象集。例如,可以将一个班的学生记录作为一个文件。一个文件必须要有一个文件名,它通常是由一串 ASCII 码或(和)汉字构成的, 名字的长度因系统不同而异。如在有的系统中把名字规定为 8 个字符,而在有的系统中又规定可用 14 个字符。用户利用文件名来访问文件。此外,文件应具有自己的属性,属性可以包括:
(1) 文件类型。可以从不同的角度来规定文件的类型,如源文件、目标文件及可执行文件等。
(2) 文件长度。文件长度指文件的当前长度,长度的单位可以是字节、字或块,也可能是最大允许的长度。
(3) 文件的物理位置。 该项属性通常是用于指示文件在哪一个设备上及在该设备的哪个位置的指针。
(4) 文件的建立时间。这是指文件最后一次的修改时间等。
为了便于管理和控制文件而将文件分成若干种类型。由于不同系统对文件的管理方式不同,因而它们对文件的分类方法也有很大差异。为了方便系统和用户了解文件的类型,在许多 OS 中都把文件类型作为扩展名而缀在文件名的后面,在文件名和扩展名之间用“.”号隔开。
分类文件的方法按用途分类根据文件的性质和用途的不同,可将文件分为三类:
(1)系统文件。这是指由系统软件构成的文件。大多数的系统文件只允许用户调用,但不允许用户去读,更不允许修改;有的系统文件不直接对用户开放。
(2) 用户文件。指由用户的源代码、目标文件、可执行文件或数据等所构成的文件。用户将这些文件委托给系统保管。
(3) 库文件。 这是由标准子例程及常用的例程等所构成的文件。 这类文件允许用户调用,但不允许修改。
按文件中数据的形式分类按这种方式分类,也可把文件分为三类:
(1) 源文件。这是指由源程序和数据构成的文件。通常由终端或输入设备输入的源程序和数据所形成的文件都属于源文件。它通常是由 ASCII 码或汉字所组成的。
(2) 目标文件。这是指把源程序经过相应语言的编译程序编译过,但尚未经过链接程序链接的目标代码所构成的文件。它属于二进制文件。通常,目标文件所使用的后缀名是“.obj” 。
(3) 可执行文件。这是指把编译后所产生的目标代码再经过链接程序链接后所形成的文件。
按存取控制属性分类根据系统管理员或用户所规定的存取控制属性,可将文件分为三类:
(1) 只执行文件。该类文件只允许被核准的用户调用执行,既不允许读,更不允许写。
(2) 只读文件。该类文件只允许文件主及被核准的用户去读,但不允许写。
(3) 读写文件。这是指允许文件主和被核准的用户去读或写的文件。1
按组织形式和处理方式分类根据文件的组织形式和系统对其的处理方式,可将文件分为三类:
(1) 普通文件:由 ASCII 码或二进制码组成的字符文件。一般用户建立的源程序文件、数据文件、目标代码文件及操作系统自身代码文件、库文件、实用程序文件等都是普通文件,它们通常存储在外存储设备上。
(2) 目录文件:由文件目录组成的,用来管理和实现文件系统功能的系统文件,通过目录文件可以对其它文件的信息进行检索。由于目录文件也是由字符序列构成,因此对其可进行与普通文件一样的种种文件操作。
(3) 特殊文件:特指系统中的各类 I/O 设备。为了便于统一管理,系统将所有的输入/输出设备都视为文件,按文件方式提供给用户使用,如目录的检索、权限的验证等都与普通文件相似,只是对这些文件的操作是和设备驱动程序紧密相连的,系统将这些操作转为对具体设备的操作。根据设备数据交换单位的不同,又可将特殊文件分为块设备文件和字符设备文件。前者用于磁盘、光盘或磁带等块设备的 I/O 操作,而后者用于终端、打印机等字符设备的 I/O 操作。