首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++检查挂载路径是否仍在挂载

C++检查挂载路径是否仍在挂载
EN

Stack Overflow用户
提问于 2015-12-07 20:52:27
回答 1查看 2K关注 0票数 0

我有使用getmntent在下面定义的结构中获得的挂载路径(具体地说是挂载前缀)的详细信息:

代码语言:javascript
复制
struct mntent {
    char *mnt_fsname;   /* name of mounted file system */
    char *mnt_dir;      /* file system path prefix */
    char *mnt_type;     /* mount type (see mntent.h) */
    char *mnt_opts;     /* mount options (see mntent.h) */
    int   mnt_freq;     /* dump frequency in days */
    int   mnt_passno;   /* pass number on parallel fsck */
};

使用mnt_dir时,我想检查挂载路径是否在一段时间后仍被挂载,因为在对它进行某些处理之前,它可能已经被卸载。检查路径是否仍然挂载的最有效方法是什么?

另外,有没有办法在路径被卸载的情况下获得回调?

EN

回答 1

Stack Overflow用户

发布于 2015-12-07 20:55:46

我想说,最有效的方法是缓存stat()返回的st_devst_ino (尽管可能只缓存st_dev就足够了)。

如果卸载卷,装载点将恢复到父文件系统中最初装载卷的空子目录,并且stat()将为相同的文件路径返回不同的device+inode。

只要收到通知,就检查一下inotify(7)接口,注意IN_UNMOUNT事件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34134029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档