【问题标题】:Determine Filesystem at runtime in C/C++在 C/C++ 中在运行时确定文件系统
【发布时间】:2019-11-24 08:04:53
【问题描述】:

如何确定我的代码正在读取或写入的文件是否在运行时从 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++ 感到抱歉。

【问题讨论】:

    标签: filesystems nfs lustre


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-06
      • 1970-01-01
      相关资源
      最近更新 更多