如何在运行时从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 ++。
答案 0 :(得分:1)
您可以使用statfs()
系统调用并查看f_type
字段。对于光泽,LL_SUPER_MAGIC
是0x0BD00BD0(基于对象的磁盘)。 NFS_SUPER_MAGIC
在statfs(2)
手册页中以0x6969的形式列出,没有说明可能的含义。 :-)