首页 > 解决方案 > 如何以编程方式确定文件是否位于 Linux 和/或 macOS 的网络文件系统(NFS 或 SMB)上?

问题描述

我正在编写一个 I/O 测试实用程序,作为其中的一部分,我希望能够确定特定文件是在本地文件系统上还是在 NFS 或 SMB 等网络文件系统上。是否有任何操作系统调用或其他技术可以提供此信息?我一直在寻找,但到目前为止我还没有找到任何东西。

标签: filenfssmb

解决方案


所以是的,statfs()(也许还有 stavfs())似乎是要走的路。事实证明,在 macOS 上 statfs() 比 Linux 上的 statfs() 或 statvfs() 更有用。幸运的是 macOS 对我来说更重要。f_type 字段(两个平台)和 f_fstypename、f_mntonname 和 f_mntfromname 字段(仅限 macOS)是您需要的。


推荐阅读