使用BSD函数

时间:2016-12-22 14:57:01

标签: macos mount fstab

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

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

当我第一次调用getfsent()时,我会获得有关根fs的信息,即" /"。

问题是我无法通过这种方式获得更多的挂载点。 man getfsent建议我只需重复调用它来了解更多挂载点,但下一个调用返回NULL。我怀疑这个函数只返回实际的" / etc / fstab"文件包含,而不是OS X稍后动态安装的其他卷。

但是由于mount命令可以列出这些额外的值,所以必须有一种方法。它是什么?或者,我可能只看一下源代码,但我无法弄清楚opensource.apple.com提供的许多下载内容。

更新:有关列出所有已装入卷的解决方案,请参阅How to iterate all mounted file systems on OSX

1 个答案:

答案 0 :(得分:0)

事实证明,为了学习特定文件卷的属性(例如文件系统类型),我还可以调用statfs()并读出fstypename字段。这样,我就不必遍历已安装的文件系统。我现在将编辑这个问题。