是否可以使用libevent來監控文件刪除/更新?文件刪除/修改期間的libevent
假設/var/log/file.1被刪除,我想在我的程序中報告它。這可能嗎?如果是,如何?
我的操作系統是Linux,我想創建一個在某些操作系統操作期間觸發消息的惡魔。
我在哪裏可以找到更多信息?
是否可以使用libevent來監控文件刪除/更新?文件刪除/修改期間的libevent
假設/var/log/file.1被刪除,我想在我的程序中報告它。這可能嗎?如果是,如何?
我的操作系統是Linux,我想創建一個在某些操作系統操作期間觸發消息的惡魔。
我在哪裏可以找到更多信息?
如果您的代碼特別針對Linux,則可以使用inotify(7)
工具。它有一個非常簡單的編程接口,用於監視文件的更改和刪除,而libevent
的用途稍有不同:監視一組描述符,並在其中任何一個準備好讀取/寫入時通知它們。
我不知道libevent
根本就不包括inotify
,因爲所有其他操作系統都不提供類似的功能libevent
支持。
只是使用一些簡單的邏輯,你可以檢查這個文件是否被刪除或不?
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
struct stat st = {0};
if (stat("/var/log/file.1", &st) == -1) {
printf("file is deleted or not present");
}
,您還可以通過檢查struct stat中的另一個元素
你可以看尾(-f和-F),它能夠告訴我們,如果一個文件被截斷的源文件檢查的更多的財產。 IIRC,他們使用'select(2)' – Aif
接受inotify解決方案,看起來非常接近我所尋找的 – cateof