使用BSD函数确定文件的文件系统类型



我喜欢获取特定文件路径的卷属性的属性,如mount命令所示,而无需使用该命令,而是调用POSIX或相关的API。

在OS X上使用mount命令时,我将获得所有可用卷的列表。man mount将我指向getfsent,它返回了我感兴趣的数据的struct fstab结构。

第一次调用getfsent()时,我会获取有关root fs的信息,即"/".

问题是我无法以这种方式获得更多的安装点。man getfsent建议我应该反复称呼它以了解进一步的安装点,但是下一个呼叫返回null。我怀疑此函数仅返回实际的"/etc/fstab"文件所包含的内容,而不是OS X以后动态安装的其他卷。

但是,由于mount命令可以列出那些其他Vols,因此必须有一种方法。它是什么?另外,我可能只看源代码,但是我无法弄清楚从opensource.apple.com提供的许多下载中的哪一个。

更新:有关列出所有已安装卷的解决方案,请参阅如何迭代OSX上的所有已安装文件系统。

事实证明,对于特定文件卷的属性(例如文件系统类型),我还可以调用statfs()并读取fstypename字段。这样,我就不必在固定的文件系统上迭代。我现在将重新编辑问题。

相关内容

  • 没有找到相关文章

最新更新