2011-10-05 88 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中的另一个元素

相关问题