在 C/C++ 中在运行时确定文件系统
Determine Filesystem at runtime in C/C++
如何在运行时从 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++ 感到抱歉。
您可以使用statfs()
系统调用并查看f_type
字段。对于 Lustre,LL_SUPER_MAGIC
是 0x0BD00BD0(基于对象的磁盘)。 NFS_SUPER_MAGIC
在 statfs(2)
手册页中列为 0x6969,没有评论它可能代表什么。 :-)
如何在运行时从 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++ 感到抱歉。
您可以使用statfs()
系统调用并查看f_type
字段。对于 Lustre,LL_SUPER_MAGIC
是 0x0BD00BD0(基于对象的磁盘)。 NFS_SUPER_MAGIC
在 statfs(2)
手册页中列为 0x6969,没有评论它可能代表什么。 :-)