0

如何确定我的代码正在读取或写入的文件是否在运行时从 C/C++ 代码中安装在 Lustre、GPFS 或 NFS 之上的路径上?

编辑:工作代码:

#include <sys/vfs.h>
#include <iostream>

int main(int argc, char** argv) {
  struct statfs sf;
  statfs(argv[0], &sf);

  std::cout << "f_type =" <<  std::hex << sf.f_type << "\n";
}

对半 C,半 C+​​+ 感到抱歉。

4

1 回答 1

1

您可以使用statfs()系统调用并查看该f_type字段。对于 Lustre,LL_SUPER_MAGIC是 0x0BD00BD0(基于对象的磁盘)。在手册页中NFS_SUPER_MAGIC列为statfs(2)0x6969,没有评论它可能代表什么。:-)

于 2019-07-17T02:22:56.247 回答