正文
Linux 一切皆文件,文件一共分为7类分别是 - d c s p l b
普通文件
普通文件(regular file:-
)
a)文本文件
存放的都是文字编码,文本编辑器打开后,会将这些文字编码翻译为文字图形,以供人识别
b)纯二进制文件(机器码)
比如经过编译后得到的可执行文件,里面放的是cpu执行的纯二进制机器码,由于文编编辑器只认识文字编码, 所以用文本编辑器打开后,显示的内容无法是错乱的,无法辨识
其实不管存放的是文字编码,还是机器码,在计算机中存储时,其实都是以二进制形式存放的, 只不过我们这里可刻意的把机器码这类非文字编码的数据,特意强调为了二进制数据。
目录文件
目录文件(director file:d
)
目录是一种特殊的文件,专门用于管理其它文件
字符设备文件
字符设备文件(character special file:c
)
字符设备文件,就是字符设备驱动程序,在上层的表现形式
当应用程序调用底层字符设备驱动程序,实现对某个字符设备进行读写时,上层就需要对接底层的字符驱动程序, 字符设备驱动在上层,会以“字符设备文件”的形式表现出来,我们通过open、read、write去读写字符设备文件, 就实现了和底层字符设备驱动程序的交互。
块设备文件
块设备文件(block special file:b
),对应块设备(如磁盘等)
- 块设备文件,是块设备驱动程序在上层的表现形式。
- 字符设备与块设备有什么区别?
(a)字符设备
以字节为单位来操作数据。
比如:键盘、鼠标、显示器都等是字符设备。字符设备的驱动程序,就称为“字符设备驱动程序”。
(b)块设备
块设备存储的数据量往往非常大,为了提高读写效率,都是以块(1024字节)为单位来操作数据。
比如:电脑硬盘、移动硬盘、u盘等,凡是涉及大量数据存储的,都是以块为单位来操作数据的,都是块设备。块设备的驱动程序,就称为“块设备驱动程序
FIFO
FIFO(fifo:p
)
管道文件,用于实现不同进程(程序)之间的通信,管道是OS提供的一种纯代码层面的通信机制。
A进程 ————————> 管道文件 ————————> B进程
套接字文件
套接字文件(socket:s
)
专门用于网络通信的文件
符号连接
符号连接(symbolic link:l
)
其实就是一种快捷图标,背后指向了另外一个文件
参考资料
Linux 7 种文件类型 https://blog.csdn.net/qq_23664173/article/details/124891625