P6 Linux 系统中的文件类型

2023-12-13 13:36:27

目录

前言? ? ? ? ? ? ? ? ? ? ??编辑 ? ? ? ? ??

01 linux系统查看文件类型

02 普通文件' - '

03?目录文件' d '

04 字符设备文件' c '和块设备文件' b '

05 符号链接文件' l '

06 管道文件' p '

07 套接字文件' s '

总结


前言
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

🎬 个人主页:@ChenPi

🐻推荐专栏1: 《C++_@ChenPi的博客-CSDN博客》????

🔥 推荐专栏2: 《Linux C应用编程(概念类)_@ChenPi的博客-CSDN博客》???

🛸推荐专栏3: ??????《 链表_@ChenPi的博客-CSDN博客 》 ???
🌺本篇简介 ?:? 上几章我们学习了关于文件操作的系统调用和C函数文件相关的API

? ? ? ? ? ? ? ? ? ? ? ? ?那学习这些有什么用呢??

我们说过Linux底下皆文件,说了这么久,那都有什么不同呢?还有就是windows里面的后缀名在Linux影响大不大

?

01 linux系统查看文件类型

在 Linux 系统下,可以通过 stat 命令或者 ls 命令来查看文件类型,如下所示

stat 命令非常友好,会直观把文件类型显示出来;

对于 ls 命令来说,并没有直观的显示出文件的类型, 而是通过符号表示出来,如ls -la

下图表示符号代表不同的文件类型

  1. ' - ':普通文件
  2. ' d ':目录文件
  3. ?' c ':字符设备文件
  4. ' b ':块设备文件
  5. ' l ':符号链接文件
  6. ' s ':套接字文件
  7. ' p ':管道文件


02 普通文件' - '

  1. 普通文件(regular file)在 Linux 系统下是最常见的,譬如文本文件、二进制文件,我们编写的源代码 文件这些都是普通文件,也就是一般意义上的文件。普通文件中的数据存在系统磁盘中,可以访问文件中的 内容,文件中的内容以字节为单位进行存储于访问。普通文件可以分为两大类:文本文件和二进制文件。
  2. 文本文件:文件中的内容是由文本构成的,所谓文本指的是 ASCII 码字符。文件中的内容其本质 上都是数字(因为计算机本身只有 0 和 1,存储在磁盘上的文件内容也都是由 0 和 1 所构成),而 文本文件中的数字应该被理解为这个数字所对应的 ASCII 字符码;譬如常见的.c、.h、.sh、.txt 等 这些都是文本文件,文本文件的好处就是方便人阅读、浏览以及编写。
  3. 二进制文件:二进制文件中存储的本质上也是数字,只不过对于二进制文件来说,这些数字并不是 文本字符编码,而是真正的数字。譬如 Linux 系统下的可执行文件、C 代码编译之后得到的.o 文 件、.bin 文件等都是二进制文件


03?目录文件' d '


目录(directory)就是文件夹,文件夹在 Linux 系统中也是一种文件,是一种特殊文件,同样我们也可 以使用 vi 编辑器来打开文件夹,如下所示:

可以看到,文件夹中记录了该文件夹当下的路径以及该文件夹下所存放的文件。可以使用mkdir,rmkdir函数创建删除文件夹,使用opendir()、readdir()和 closedir()来打开、读取以及关闭目录

04 字符设备文件' c '和块设备文件' b '


Linux 系统下,一切皆文件,也包括各种硬件设备。字符设备文件(character)、块设备(block) 对应的是硬件设备,在 Linux 系统中,硬件设备会对应到一个设备文件,应用程序通过对设备文件的读写来 操控、使用硬件设备,譬如 LCD 显示屏、串口、音频、按键等,在本教程的进阶篇内容中,将会向大家介 绍如何通过设备文件操控、使用硬件设备。 Linux 系统中,可将硬件设备分为字符设备和块设备,所以就有了字符设备文件和块设备文件两种文件 类型。虽然有设备文件,但是设备文件并不对应磁盘上的一个文件,也就是说设备文件并不存在于磁盘中, 而是由文件系统虚拟出来的,一般是由内存来维护,当系统关机时,设备文件都会消失;字符设备文件一般 存放在 Linux 系统/dev/目录下,所以/dev 也称为虚拟文件系统 devfs。

05 符号链接文件' l '

符号链接文件(link)类似于 Windows 系统中的快捷方式文件,是一种特殊文件,它的内容指向的是另 一个文件路径,当对符号链接文件进行操作时,系统根据情况会对这个操作转移到它指向的文件上去,而不 是对它本身进行操作,譬如,读取一个符号链接文件内容时,实际上读到的是它指向的文件的内容。

如果大家理解了 Windows 下的快捷方式,那么就会很容易理解 Linux 下的符号链接文件。上图 中 的 rec,stderr,stdin,stdout 等这些文件都是符号链接文件,箭头所指向的文件路径便是符号链接文件所指 向的文件。关

06 管道文件' p '

管道文件(pipe)主要用于进程间通信

07 套接字文件' s '

套接字文件(socket)也是一种进程间通信的方式,与管道文件不同的是,它们可以在不同主机上的进 程间通信,实际上就是网络通信

总结

本小节简单地介绍了 Linux 系统中的 7 种文件类型,包括:普通文件、目录、字符设备文件、块 设备文件、符号链接文件、管道文件以及套接字文件,下面对它们进行一个简单地概括:

  1. 普通文件是最常见的文件类型;
  2. 目录也是一种文件类型;
  3. 设备文件对应于硬件设备;
  4. 符号链接文件类似于 Windows 的快捷方式;
  5. 管道文件用于进程间通信;
  6. 套接字文件用于网络通信

文章来源:https://blog.csdn.net/weixin_73901182/article/details/134840679
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。