![字符设备文件里面有什么?](https://linux22.com/image/216025/%E5%AD%97%E7%AC%A6%E8%AE%BE%E5%A4%87%E6%96%87%E4%BB%B6%E9%87%8C%E9%9D%A2%E6%9C%89%E4%BB%80%E4%B9%88%EF%BC%9F.png)
字符设备文件是一种特殊的 Linux 文件,您可以在其中读取和写入无限数量的字符以及可以在内核设备驱动程序中定义的其他文件操作。
但这个文件真的存在吗?如果我们将其视为普通文本文件,是否可以读取其中的内容?比如大数、小数?
我们在软链接上也有类似的东西。在 Linux 机器上,链接实际上是系统中的一条路径,但是在将其提交到 git 后,我们只能看到带有一个字符串的“正常”文本文件,即源目录的路径。
答案1
但这个文件真的存在吗?
你会发现有一个文件系统中的条目包含此特定条目描述设备的信息。这不是一个常规的文件,它仍然是文件系统中的一个条目。
如果我们把它看作普通的文本文件
谁是“我们”,什么是“将其视为普通文本文件”?
您可以open
像常规文件一样使用字符设备文件系统条目,您可以read
从中访问它,也可以write
访问它,但不能seek
在其中访问。
所以,是的,任何从头开始读取文件的东西都可以打开并且字符设备 - 但它很可能永远不会完成读取它,因为字符设备没有“这就是结束”的标记(除非某些东西物理上结束了文件)字符设备)。
里面的内容?比如大数、小数?
否,主要和次要设备编号是特性设备文件的内容,而不是内容。您从设备文件中读取的内容将是字符设备产生的实际数据。
在 Linux 机器上,链接实际上是系统中的一条路径,但是在将其提交到 git 后,我们只能看到带有一个字符串的“正常”文本文件,即源目录的路径。
不,那是上面的一层,这就是 git 处理这些事情的方式。甚至 git 也包含这样的信息:“这不是一个常规文件;在支持符号链接的系统上,将其表示为这样”。同样,在符号链接上,指向的路径是财产符号链接的内容,如果您使用open
符号链接并从中读取内容,您将获得所链接内容的内容。因此,在心理上区分一下属性和内容,就可以了。