是否可以使用 libevent 来监视文件删除/更新?
假设 /var/log/file.1 被删除,我想在我的程序中报告它。这可能吗?如果是,如何?
我的操作系统是 Linux,我想创建一个在某些操作系统操作期间触发消息的恶魔。
我在哪里可以找到更多信息?
是否可以使用 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 的另一个元素来检查文件的更多属性