概述
#include <sys/inotify.h>
#include <sys/types.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#define INOTIFY_EVENT_ARR_SIZE (1024)
int main(int argc, char *argv[])
{
const char *installlist_path("/tmp");
int fd, wd, count = 5;
struct inotify_event eventArr[INOTIFY_EVENT_ARR_SIZE];
int eventSize = sizeof(struct inotify_event);
int eventArrSize = eventSize * INOTIFY_EVENT_ARR_SIZE;
do {
if ((fd = inotify_init()) < 0) {
printf("Open file descriptor failn");
continue;
}
if ((wd = inotify_add_watch(fd, installlist_path, IN_CREATE | IN_MOVED_TO)) < 0) {
printf("Inotify add watch failn");
close(fd);
continue;
}
break;
} while (count--);
if (count < 0) {
printf("exitn");
return -1;
}
while (1) {
memset(eventArr, 0x00, eventArrSize);
int readLen = read(fd, eventArr, eventArrSize);
if(readLen <= 0) {
printf("Read fail ( Check whether it is interrupted by signaln");
sleep(1);
continue;
}
int size = readLen / eventSize;
for (int i = 0; i < size; ++i) {
if (eventArr[i].len && (eventArr[i].mask & IN_CREATE)) {
printf("%s/%sn", installlist_path, eventArr[i].nam);
i += (
(eventArr[i].len % eventSize) ?
(eventArr[i].len / eventSize + 1) :
(eventArr[i].len / eventSize)
);
}
}
}
close(fd);
return 0;
}
最后
以上就是冷酷画笔为你收集整理的Linux下目录新增文件监控的全部内容,希望文章能够帮你解决Linux下目录新增文件监控所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复