如何检查C代码目录是否在NFS文件系统上?

Ale*_*rov 3 linux nfs stat

在我的C/C++程序中,我想检查用户指定的数据目录是否驻留在NFS文件系统上.需要进行检查,因为远程NFS目录的数据处理延迟/带宽更差.如果数据目录是NFS,我想向用户发出警告.

我怎样才能做到这一点?我认为有stat()调用应该可以帮助我,但细节不明确.

我在Linux上.

Int*_*ess 7

你应该使用statfs(2)和检查f_type.

#include <sys/statfs.h>

struct statfs foo;
if (statfs ("/foo/bar", &foo)) {
    /* error handling */
}

if (foo.f_type == NFS_SUPER_MAGIC) {
    /* nfs warning */
}
Run Code Online (Sandbox Code Playgroud)

我同意Basile关于这样做的有用性.