inotify是Linux的一個特性, 2.6.13以及以後的版本纔有,可以從
/usr/include/sys/inotify.h 看看有沒有這個文件
或者uname -a看看你當前系統支持不支持
1、inotify監聽API函數
頭文件:#include <sys/inotify.h>
1)int inotify_init (void)
創建監聽inotify實例,返回文件描述符,內部創建:inotify_device
返回值:返回文件描述符(fd),即給下面倆函數的輸入參數值
2)int inotify_add_watch (int __fd, const char * __name, uint32_t __mask)
參數:fd爲文件描述符,name被監測的文件名/目錄名的路徑,mask爲事件掩碼
返回值:監視器的描述符
3)int inotify_rm_watch (int __fd, uint32_t __wd)
將fd文件描述符和wd監聽描述符,從notify_device的監視器列表中刪除。
遇到的問題:
在監聽具體某個文件的時候,如果是用vim/vi編輯器改當前監聽文件(test.conf)的時候,實際監聽的是(test.conf.swp)格式的文件,
導致監聽失敗。
解決方法:
1)建議如果修改文件具體內容的時候,用echo命令修改。此方法可以監聽成功
2)第二種就是拷貝一份同樣的文件,修改備份文件,然後再用備份文件覆蓋這個文件也能監聽成功,但是測試只有第一次是監聽成功了