libevent во время удаления / модификации файла - PullRequest
1 голос
/ 05 октября 2011

Можно ли использовать libevent для мониторинга удаления / обновления файлов?

Предполагая, что /var/log/file.1 удален, я хочу сообщить об этом в моей программе. Это возможно? Если да, то как?

Моя операционная система - Linux, и я хочу создать демона, который запускает сообщения во время некоторых действий операционной системы.

Где я могу найти больше информации?

Ответы [ 2 ]

1 голос
/ 05 октября 2011

Если ваш код специально предназначен для Linux, вы можете использовать вместо него функцию inotify(7). Он имеет очень простой программный интерфейс и предназначен для отслеживания изменений и удалений файлов, в то время как цель libevent немного отличается: наблюдать за группой дескрипторов и получать уведомления, когда любой из них готов для чтения / записи.

Я не уверен, что libevent обертывает inotify вообще, потому что подобные функции не предоставляются всеми другими операционными системами, поддерживаемыми libevent.

0 голосов
/ 05 октября 2011

просто используя простую логику, вы можете проверить, удален этот файл или нет?

#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

...