mask: 0x%08xn", event->mask); printf("event->name: %sn", event->name); } int main(int argc, char ....">

当前位置:  技术问答>linux和unix

inotify 检测文件被修改

    来源: 互联网  发布时间:2016-08-07

    本文导语:  #include  #include  #include  #include  static void _inotify_event_handler(struct inotify_event *event) { printf("event->mask: 0x%08xn", event->mask); printf("event->name: %sn", event->name); } int main(int argc, char **argv) { unsigned char buf[1024] = {0}; ...

#include 
#include 
#include 
#include 
static void _inotify_event_handler(struct inotify_event *event)
{
printf("event->mask: 0x%08xn", event->mask);
printf("event->name: %sn", event->name);
}

int main(int argc, char **argv)
{

unsigned char buf[1024] = {0};
struct inotify_event *event = {0};
int fd = inotify_init();
//IN_ALL_EVENTS
int wd = inotify_add_watch(fd, "aa.txt",IN_MODIFY);
for (;;)
{
fd_set fds;
FD_ZERO(&fds);
FD_SET(fd, &fds);
while (select(fd + 1, &fds, NULL, NULL, NULL) > 0)
{
int len, index = 0;
while (((len = read(fd, &buf, sizeof(buf))) > aa.txt 这样修改aa.txt的
你是不是使用vi在改变aa.txt文件?
下面找到了比较正确完整的解释

用vim编辑那个被监视的文件,修改并保存,触发的是IN_DELETE_SELF和 IN_MOVE_SELF事件而不是我们所期望的IN_MODIFY事件;再次修改并保存的时候不再有任何事件发生。希望能给看官一个教训,其实这是由于 vim的工作机制引起的,vim会先将源文件复制为另一个文件,然后在另一文件基础上编辑(一般后缀名为swp),保存的时候再将这个文件覆盖源文件,因此会出现上述的第一个现象,第二个现象是因为原来的文件已经被后来的新文件代替,因此监视对象所监视的文件已经不存在了,所以自然不会产生任何事件

|
我用你的程序执行能检测到啊
[lihua@wuqingmin test]$ ./inotfy 
event->mask: 0x00000002
event->name: 
event->mask: 0x00000002
event->name: 

说说你的执行过程

|
快要沉了,帮你顶下
希望有会的人来帮你解答下

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • inotify_add_watch问题
  • inotify求助
  • ARM linux 编译器不支持 inotify 监视文件功能?
  • inotify-tools
  • inotify的问题
  • Linux文件系统监控的Java类库 inotify-java
  • Linux文件系统安全监控 inotify-sync
  • inotify机制是Linux专有的吗,还是Posix系统上全都有的实现?
  • ptrace和inotify到底有什么区别? 我怎么感觉两者是一样的功能呢?
  • 关于inotify的一个问题
  • 【一周话题】介绍Linux 2.6.13 内核中新引入的文件系统变化通知机制 inotify
  • 使用Inotify 监控目录与文件的方法详解


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3