在C / C ++中确定运行时的文件系统

时间:2019-07-15 15:23:04

标签: filesystems nfs lustre

如何在运行时从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 ++。

1 个答案:

答案 0 :(得分:1)

您可以使用statfs()系统调用并查看f_type字段。对于光泽,LL_SUPER_MAGIC是0x0BD00BD0(基于对象的磁盘)。 NFS_SUPER_MAGICstatfs(2)手册页中以0x6969的形式列出,没有说明可能的含义。 :-)