inotify
是 Linux 系統中的一個內核子系統,用于監控文件系統事件
要自定義 inotify
的事件類型,你需要使用位掩碼(bitmask)來組合不同的事件。以下是一些常用的 inotify
事件類型:
IN_ACCESS
:文件被訪問。IN_MODIFY
:文件被修改。IN_ATTRIB
:文件的屬性發生變化。IN_CLOSE_WRITE
:文件被關閉,且之前被寫入。IN_CLOSE_NOWRITE
:文件被關閉,且之前沒有被寫入。IN_OPEN
:文件被打開。IN_MOVED_FROM
:文件從一個目錄移動到另一個目錄。IN_MOVED_TO
:文件被移動到一個目錄。IN_CREATE
:在目錄中創建新文件或目錄。IN_DELETE
:從目錄中刪除文件或目錄。IN_DELETE_SELF
:文件或目錄被刪除。IN_MOVE_SELF
:文件或目錄被移動。要自定義事件類型,你需要將這些事件類型的常量進行位或(OR)操作。例如,如果你想要監控文件的修改、刪除和移動事件,你可以這樣做:
#include <sys/inotify.h>
int event_mask = IN_MODIFY | IN_DELETE | IN_MOVE;
然后,你可以將這個 event_mask
傳遞給 inotify_init()
和 inotify_add_watch()
函數,以便監控這些自定義事件類型。
請注意,inotify
API 可能會因 Linux 發行版和內核版本的不同而略有差異。在使用之前,請確保查閱你所使用的系統的文檔。