如何检测并获取设备文件的真实大小?

如何检测并获取设备文件的真实大小?

对于特殊/设备文件, Cfsize函数返回 4096,但是是否有一个集成函数可以知道设备文件的实际大小(如果它是有限的)?
我还想知道是否有办法知道文件是常规文件还是设备文件?

谢谢 !

答案1

您的问题仍然相当不具体和广泛,对于不具体的问题,您会得到不具体的答案,这可能有帮助,也可能没有帮助。仍然尝试为您指出正确的方向。

我还想知道是否有办法知道文件是常规文件还是设备文件?

当然。最常见的是以下输出ls -l

$ ls -l /dev
total 0
crw-rw----+ 1 root   audio      14,   4 Jan  5 00:44 audio
crw-------  1 root   root       10, 235 Jan  5 00:44 autofs
drwxr-xr-x  2 root   root           480 Jan 17 01:20 block
drwxr-xr-x  2 root   root           140 Jan 17 01:20 bsg
drwxr-xr-x  3 root   root            60 Jan  5 00:44 bus
lrwxrwxrwx  1 root   root             3 Jan 17 22:14 cdrom -> sr0
[...]

每个输入行的第一个字符显示文件类型;您可以在中找到有效类型的列表ls手动的

当您询问 中的条目时/dev,除了目录和链接之外,最常见的类型是字符设备块设备

是否有一个集成函数可以知道设备文件的实际大小

正如我已经指出的,“实际大小”的意思是设备“中”可用的内容的大小,其中的特殊文件/dev只是系统可以访问它们的一种表示。

“如何获得尺寸”的答案是“取决于内容”。例如对于磁盘分区(一种块设备),您通常会挂载它并可以使用以下命令获取大小(总空间、已占用空间、可用空间)df。另一方面,并​​非所有块设备都可以安装。

在不知道您到底想要实现什么的情况下,这就是您到目前为止所能得到的一切。现在由你来思考,搜索网络(一切都在那里),如果你自己无法弄清楚,则可以创建一个新问题。

相关内容