2011-10-05 104 views
1

是否可以使用libevent來監控文件刪除/更新?文件刪除/修改期間的libevent

假設/var/log/file.1被刪除,我想在我的程序中報告它。這可能嗎?如果是,如何?

我的操作系統是Linux,我想創建一個在某些操作系統操作期間觸發消息的惡​​魔。

我在哪裏可以找到更多信息?

+0

你可以看尾(-f和-F),它能夠告訴我們,如果一個文件被截斷的源文件檢查的更多的財產。 IIRC,他們使用'select(2)' – Aif

+0

接受inotify解決方案,看起來非常接近我所尋找的 – cateof

回答

1

如果您的代碼特別針對Linux,則可以使用inotify(7)工具。它有一個非常簡單的編程接口,用於監視文件的更改和刪除,而libevent的用途稍有不同:監視一組描述符,並在其中任何一個準備好讀取/寫入時通知它們。

我不知道libevent根本就不包括inotify,因爲所有其他操作系統都不提供類似的功能libevent支持。

0

只是使用一些簡單的邏輯,你可以檢查這個文件是否被刪除或不?

#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中的另一個元素

相關問題