首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >区分HFS+和HFS标准卷

区分HFS+和HFS标准卷
EN

Stack Overflow用户
提问于 2008-10-11 20:55:53
回答 3查看 2K关注 0票数 1

IOKit和DiskArbitration框架可以告诉我很多关于mac上挂载卷的事情,但它们似乎无法区分HFS+和HFS标准卷。

IOKit/DA键ContentDAVolumeKindDAMediaContent对于hfs标准卷和HFS+卷都是Apple_HFS和HFS。

diskutil和DiskUtility.app可以区别开来,但我觉得它们似乎不是苹果开源的。

附注:statfs (2)不区分

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-10-11 22:09:37

有两种方法可以做到这一点:

  1. 使用getattrlist()检索卷的挂载路径的ATTR_VOL_SIGNATURE属性。
  2. 使用call调用FSGetVolumeInfo()并查看返回的结构的signature字段。

卷的签名是一个16位值,通常解释为两个ASCII字符。HFS的签名是'BD',HFS+是'H+',大小写敏感的HFS+是'HX‘。

getattrlist的手册页说这个字段是一个u_int32,但是FSVolumeInfo结构中的等效字段只有16位,所以我不确定在使用getattrlist时,32位中的哪16位是用签名填充的,如果您想要使用非碳路径,您可能需要做一些实验。

获取命令页

HFS +卷格式参考

FSGetVolumeInfo

票数 7
EN

Stack Overflow用户

发布于 2009-02-15 09:13:51

除了C FSGetVolumeInfo()返回包含signaturefilesystemID字段的FSVolumeInfo之外,还有NSWorkspace类的Cocoa -getFileSystemInfoForPath:方法,它返回文件系统类型的字符串表示形式:例如,hfs for HFS+和msdos表示DOS FAT。

票数 1
EN

Stack Overflow用户

发布于 2009-10-13 23:45:25

如果您尝试直接读取分区映射,您可能遇到的另一个问题是,历史上,HFS+卷是嵌套在HFS包装器中的。这样做是为了让任何试图使用带有旧操作系统的HFS+磁盘的人都能在驱动器上看到一个文件,解释所有其他数据在哪里。

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

https://stackoverflow.com/questions/194628

复制
相关文章

相似问题

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