簡體   English   中英

C ++檢查是否仍然安裝了安裝路徑

[英]C++ Check if mount path is still mounted

我有在以下定義的結構中使用getmntent獲得的安裝路徑(特別是安裝前綴)的詳細信息:

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檢查一段時間后是否仍然掛載了掛載路徑,因為在對其進行某些處理之前,它可能已經被掛載了。 檢查路徑是否仍然安裝的最有效方法是什么?

還有在路徑卸載的情況下是否有獲取回調的方法?

我想說,最有效的方法是緩存stat()返回的st_devst_ino (盡管僅緩存st_dev應該足夠了)。

如果卸載該卷,則安裝點將還原到該卷最初安裝在其父文件系統中的空子目錄,並且stat()將針對同一文件路徑返回不同的device + inode。

據通知,在inotify(7)接口周圍戳一下,注意IN_UNMOUNT事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM