有没有办法判断文件是在本地磁盘还是在C中的NFS?代码应该可以在各种Linux发行版中移植,不应该依赖于系统调用(例如stat -f)。
答案 0 :(得分:8)
您想使用<sys/vfs.h>
中的statfs
。
int statfs(const char *path, struct statfs *buf); struct statfs { __SWORD_TYPE f_type; /* type of file system (see below) */
以下是如何使用它:
struct statfs s;
if (statfs("/etc", &s))
perror("statfs");
switch (s->f_type) {
case EXT2_SUPER_MAGIC:
break;
case EXT3_SUPER_MAGIC:
break;
default:
break;
}
此外: