(1) 普通文件(regular file,-) ls -l
(在系统中文件颜色为:黑色)
这是最常见的文件类型,这种文件包含了某种形式的数据。至
于这种数据是文本还是二进制数据对于内核而言并无区别。对普通文件内容的解释由处理该文
件的应用程序进行。
(2) 目录文件(directory file,d)ls -l (在系统中文件颜色为:蓝色)
这种文件包含了其他文件的名字以及指向与这些文件有关信
息的指针。对一个目录文件具有读许可权的任一进程都可以读该目录的内容,但只有内核可以
写目录文件。
3) 字符特殊文件(character special file) ls -la
(在系统中文件颜色为:黄色)
这种文件用于系统中某些类型的设备。
(4) 块特殊文件(block special file)
这种文件典型地用于磁盘设备。系统中的所有设备或者
是字符特殊文件,或者是块特殊文件。一般在Linux系统中的/dev/fd路径下
批注:字符特殊文件和块特殊文件,统一为设备文件。
( 5 ) F I F O(named pipe,管道文件) 创建:mknod mypipe p 查看:ls -l mypipe
(在系统中文件颜色为:棕色)
这种文件用于进程间的通信,有时也将其称为命名管道。
(6) 套接口(socket) 在“/tmp”临时目录下,经常会有套接字文件
这种文件用于进程间的网络通信。套接口也可用于在一台宿主机上的
进程之间的非网络通信。
(7) 符号连接(symbolic link) ln -sf minicom.log mlink ls -l mlink
(在系统中文件颜色为:浅蓝色)
这种文件指向另一个文件。
4 . 1 6
节将更多地述及符号连接。
文件类型信息包含在s t a t结构的s t _mode成员中。可以用表4 - 1中的宏确定文件类型。这些宏的参数都是s t a t结构中的s t _mode成员。
宏
|
文件类型
|
S_ISREG()
|
普通文件
|
S_ISDIR()
|
目录文件
|
S_ISCHR()
|
字符特殊文件
|
S_ISBLK()
|
块特殊文件
|
S_ISFIFO()
|
管道或FIFO
|
S_ISLNK()
|
符号连接(POSIX.1 或 SVR4无此类型)
|
S_ISSOCK()
|
套接字(POSIX.1或SVR4无此类型)
|
早期的U N I X版本并不提供S_ISxxx宏,于是就需要将s t_m o d e与屏蔽字S_I F M T逻辑与,然
后与名为S_I F x x x的常数相比较。S V R 4和4 . 3 + B S D在文件< s y s / s t a t . h >中定义了此屏蔽字和相关
的常数。如若查看此文件,则可找到S_SIDIR宏定义为:
#define S_ISDIR (mode) (((mode) & S_IFMT) == S_IFDIR)