У меня есть около 50 файлов, которые перемещаются в каталог «/ tmp» в некоторый промежуток времени, когда его изменение изменяется. Я использую inotify, чтобы посмотреть этот каталог/tmp для этих файлов, перемещенных в этот каталог, чтобы я мог объединить эти файлы в другой файл в другом каталоге.Как посмотреть каталог с несколькими изменениями файлов, используя inotify в c
Но скорость, с которой файлы, перемещаемые в этот каталог ("/ tmp"), inotify, не могут предоставлять уведомления для других файлов, кроме одного файла.
Как просмотреть каталог, если несколько файлов с разными именами (неизвестными именами) создаются или перемещаются в каталог с помощью inotify.
Я знаю, что могу создать несколько часовых дескрипторов для каждого файла с его именем. Но я не знаю, какое имя файла создается или перемещается в этот каталог. Динамически файлы создаются, поэтому я не могу создавать дескрипторы часов для каждого файла.
Ниже приведен мой код.
Как проверить уведомления для нескольких файлов gettign, созданных в этом каталоге.
Пожалуйста, помогите с решением проблемы. Ваша помощь очень ценится. Благодаря
int main(int argc, char **argv)
{
int length, i = 0;
int fd;
int wd;
char buffer[BUF_LEN];
fd = inotify_init();
if (fd < 0) {
perror("inotify_init");
}
wd = inotify_add_watch(fd, "/tmp/", IN_MOVED_TO);
while (1){
struct inotify_event *event;
length = read(fd, buffer, BUF_LEN);
if (length < 0) {
perror("read");
}
event = (struct inotify_event *) &buffer[ i ];
if (event->len) {
if (event->mask & IN_CREATE || IN_MOVED_TO) {
printf("The file %s was created.\n", event->name);
}
}
}
(void) inotify_rm_watch(fd, wd);
(void) close(fd);
exit(0);
}
Привет, Константин Дедов, спасибо за ответ. Но я ищу что-то подобное этой функции на платформе C на linux. Windows-код мне не поможет. –