当前位置:  开发笔记 > 编程语言 > 正文

区分HFS +和HFS标准卷

如何解决《区分HFS+和HFS标准卷》经验,为你挑选了1个好方法。

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

由于IOKit/DA键Content,DAVolumeKind并且DAMediaContent总是Apple_HFS和两个HFS标准和HFS +卷HFS.

diskutil和DiskUtility.app 可以区分,但我似乎没有Apple开源.

ps statfs(2)没有区分



1> Brian Webste..:

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

    使用getattrlist()检索ATTR_VOL_SIGNATURE的卷的安装路径属性.

    使用Carbon调用FSGetVolumeInfo()并查看signature返回的struct 的字段.

卷的签名是16位值,通常解释为两个ASCII字符.HFS的签名是"BD",HFS +是"H +",区分大小写的HFS +是"HX".

getattrlist说该字段的手册页是一个u_int32,但FSVolumeInfo结构中的等效字段只有16位,所以我不确定使用时签名中哪些32位填充了32位getattrlist,你可能会有如果你想进入非碳路线,只是尝试一下.

getattrlist手册页

HFS Plus卷格式参考

FSGetVolumeInfo

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有