首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux文件系统SUPER_MAGIC、FS_MAGIC和TEST_MAGIC的区别

Linux文件系统SUPER_MAGIC、FS_MAGIC和TEST_MAGIC的区别
EN

Stack Overflow用户
提问于 2017-07-05 16:08:56
回答 1查看 339关注 0票数 1

浏览一下stasfs( http://man7.org/linux/man-pages/man2/statfs.2.html)的手册页,我在文件系统类型SUPER_MAGIC、FS_MAGIC和TEST_MAGIC中看到它们。

代码语言:javascript
复制
Filesystem types:

ADFS_SUPER_MAGIC      0xadf5
.
.
.
BTRFS_SUPER_MAGIC     0x9123683e
BTRFS_TEST_MAGIC      0x73727279

BPF_FS_MAGIC          0xcafe4a11

但SUPER_MAGIC、FS_MAGIC和TEST_MAGIC之间的区别是什么呢?

EN

回答 1

Stack Overflow用户

发布于 2018-04-09 16:50:32

为了回答您的问题,这些宏的名称和值是不同的。这些宏的用途没有区别,因为它们都用于标识文件系统的格式。

常量*_MAGIC是在linux内核的linux/magic.h文件中定义的。

因此,BPF_FS_MAGIC用于标识BPS文件系统,BTRFS_TEST_MAGIC用于标识一些测试btrfs文件系统,而BTRFS_MAGIC_NUMBER用于标识(生产就绪的) btrfs文件系统等等。这些宏的命名可能不一致,但它们都有相同的用途。

常量的命名对程序员来说可能是一个提示,并且/或者可能会让程序员感到困惑,因为我们都有不同的想法。我希望名为*_MAGIC的常量具有某种魔术数字常量的值,名为*_TEST_MAGIC的宏用来标识某种格式的测试文件系统,而名为*_FS_MAGIC和/或*_MAGIC_NUMBER的常量对我来说意义完全相同。因此,有人(可能是BPS内核驱动程序的作者)将BPS幻数宏命名为BPS_FS_MAGIC,这是他的选择,其他人则以不同的方式命名它们的幻数常量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44920459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档