注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gmd20的个人空间

// 编程和生活

 
 
 

日志

 
 

c语言的inotify监控文件变化的例子  

2014-03-05 16:05:56|  分类: linux相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
打算实现一个监控文件变化的功能,自己参考man page 弄了一个简单的测试程序
参考api说明:
http://man7.org/linux/man-pages/man7/inotify.7.html

#include <sys/inotify.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

void main(void)
{
int fd = -1;
int wd = -1;
fd = inotify_init();
if (fd == -1) {
printf("inotify_init failed!\n");
return;
}

wd = inotify_add_watch(fd, "./", IN_DELETE);
if (wd == -1) {
printf("inotify_add_watch failed!\n");
return;
}

const int kBufferLenOfOneEvent = sizeof(struct inotify_event) + NAME_MAX + 1;
struct inotify_event* event = (struct inotify_event*) malloc(kBufferLenOfOneEvent);

int len = 0;
do {
len = read(fd, event, kBufferLenOfOneEvent);
if (len == -1) {
printf("inotify read failed!\n");
break;
}

if (event->mask & IN_DELETE) {
printf("delete file =%s\n", event->name);
}
}while (len >=0);

free(event);
inotify_rm_watch(fd, wd);
close(fd);
}


上面只监控了文件删除事件,以前的一篇blog提到这里也有个例子

用 inotify 监控 Linux 文件系统事件

http://www.ibm.com/developerworks/cn/linux/l-inotify/index.html


  评论这张
 
阅读(573)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017