`
iMzw
  • 浏览: 191233 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

请教一个问题 - 监控文件系统变化( C 语言)

阅读更多
上次写C的代码已经是2年前了, 几乎连main函数怎么写都忘记了.
最近我需要一监控文件系统的, 主要用处就是, 我一保存文件, 就调用一个程序. 通过Google 了好长一段时间. 知道linux 上有个 inotify 的东西. free bsd(mac os) 上有个 kqueue 的东西, windows没看(除了玩儿,我不怎么用它).

sf上 inotify-tools 的项目, 包装了inotify. 用起来不错.

free bsd(mac os) 就没这么幸运了, 只能自己写. 下面的程序基本可以实现, 但问题是只能监控当前目录, 不能监控子目录.



伟大的C, 我跟他很是不熟. 希望大家帮帮忙, 指导下如何实现监控子目录,子目录的子目录。

UPDATE:我的想法是遍历所有子目录,在每个目录上同样的操作。

...


#include <sys/event.h>
#include <sys/time.h> 
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h> 

int main(void){
   int f, kq, nev;
   struct kevent change;
   struct kevent event;

   kq = kqueue();
   if (kq == -1)
       perror("kqueue");

   f = open("/Users/abc/test", O_RDONLY);
   if (f == -1)
       perror("open");

   EV_SET(&change, f, EVFILT_VNODE,
          EV_ADD | EV_ENABLE | EV_ONESHOT,
          NOTE_DELETE | NOTE_EXTEND | NOTE_WRITE | NOTE_ATTRIB,
          0, 0);
   

   for (;;) {
       nev = kevent(kq, &change, 1, &event, 1, NULL);
       if (nev == -1)
           perror("kevent");
       else if (nev > 0) {
           if (event.fflags & NOTE_DELETE) {
             printf("File deleted\n");
             break;
           }
           if (event.fflags & NOTE_EXTEND || event.fflags & NOTE_WRITE){
             printf("File modified\n");
             system("build.sh");
           }
           if (event.fflags & NOTE_ATTRIB){
             printf("File attributes modified\n");
            //system(script);
           }
       }
   }

   close(kq);
   close(f);
   return EXIT_SUCCESS;
}



--
I'm a dog chasing cars.

It's Neal Mi.

  • 大小: 16 KB
2
1
分享到:
评论

相关推荐

    数据结构课程设计-导游系统-C语言实现.zip

    C语言课程设计是一个旨在帮助学生深入理解和应用C语言编程的实践项目。以下是一些关于C语言课程设计的基本步骤和建议: 明确目标和需求:首先,你需要与授课教师或课程设计的相关人员沟通,明确课程设计的需求。这...

    中国大学MOOC-浙江大学-翁恺老师网课-C语言程序设计,我从零开始自学编程的记录。.zip

    C语言课程设计是一个旨在帮助学生深入理解和应用C语言编程的实践项目。以下是一些关于C语言课程设计的基本步骤和建议: 明确目标和需求:首先,你需要与授课教师或课程设计的相关人员沟通,明确课程设计的需求。这...

    C语言课程设计-职工管理系统.zip

    C语言课程设计是一个旨在帮助学生深入理解和应用C语言编程的实践项目。以下是一些关于C语言课程设计的基本步骤和建议: 明确目标和需求:首先,你需要与授课教师或课程设计的相关人员沟通,明确课程设计的需求。这...

    编译原理课程设计:自制C-(C-minus)语言编译器,实现词法分析和语法分析。.zip

    C语言课程设计是一个旨在帮助学生深入理解和应用C语言编程的实践项目。以下是一些关于C语言课程设计的基本步骤和建议: 明确目标和需求:首先,你需要与授课教师或课程设计的相关人员沟通,明确课程设计的需求。这...

    请教C语言问题

    请教C语言问题

    延性系数的问题-双线性文件.m

    延性系数的问题-双线性文件.m 本帖最后由 王超群 于 2012-6-13 23:50 编辑 请教大婶们 这个程序是求单自由度的双线性响应。现在的问题是,怎样把这个程序改成依据延性系数变化的响应;也就是让这个程序依据...

    问题请教工程,问题请教工程

    问题请教工程,问题请教工程,问题请教工程,问题请教工程,问题请教工程,问题请教工程,问题请教工程,问题请教工程,

    SVPWMSimulink问题请教-svpwm.mdl

    SVPWMSimulink问题请教-svpwm.mdl 这个论坛里网有上传的SVPWM文件,为什么仿真的时候总是提示TS没有定义,在哪定义TS?

    如何实时获取系统每个进程占用的CPU?--讨论及请教

    如何实时获取系统每个进程占用的CPU?--讨论及请教

    2019-2020年C语言课程设计作业.zip

    C语言课程设计是一个旨在帮助学生深入理解和应用C语言编程的实践项目。以下是一些关于C语言课程设计的基本步骤和建议: 明确目标和需求:首先,你需要与授课教师或课程设计的相关人员沟通,明确课程设计的需求。这...

    数据结构课程设计:校园导游系统(C语言).zip

    C语言课程设计是一个旨在帮助学生深入理解和应用C语言编程的实践项目。以下是一些关于C语言课程设计的基本步骤和建议: 明确目标和需求:首先,你需要与授课教师或课程设计的相关人员沟通,明确课程设计的需求。这...

    AD封装库导入eda问题请教-封装库.zip

    AD封装库导入eda问题请教-封装库.zip

    电子地图查询系统V0.90及源代码

    这个系统本来应该注重于查询的,但查询有点问题,精确查询还好,模糊查询是错误的,大家可以看我的代码,模糊查询应该和精确查询是一样的,只是查的是所有图层罢了.所以我想请教一下大家怎样可以模糊查询,看了代码,照着做...

    2017-2018-2学期17计算机1《C语言程序设计II》授课资料.zip

    C语言课程设计是一个旨在帮助学生深入理解和应用C语言编程的实践项目。以下是一些关于C语言课程设计的基本步骤和建议: 明确目标和需求:首先,你需要与授课教师或课程设计的相关人员沟通,明确课程设计的需求。这...

    C语言课程设计图书管理系统.zip

    C语言课程设计是一个旨在帮助学生深入理解和应用C语言编程的实践项目。以下是一些关于C语言课程设计的基本步骤和建议: 明确目标和需求:首先,你需要与授课教师或课程设计的相关人员沟通,明确课程设计的需求。这...

    C语言课程设计——图书管理系统.zip

    C语言课程设计是一个旨在帮助学生深入理解和应用C语言编程的实践项目。以下是一些关于C语言课程设计的基本步骤和建议: 明确目标和需求:首先,你需要与授课教师或课程设计的相关人员沟通,明确课程设计的需求。这...

    C语言课程设计:人事管理系统.zip

    C语言课程设计是一个旨在帮助学生深入理解和应用C语言编程的实践项目。以下是一些关于C语言课程设计的基本步骤和建议: 明确目标和需求:首先,你需要与授课教师或课程设计的相关人员沟通,明确课程设计的需求。这...

    C语言课程设计超市库存管理系统.zip

    C语言课程设计是一个旨在帮助学生深入理解和应用C语言编程的实践项目。以下是一些关于C语言课程设计的基本步骤和建议: 明确目标和需求:首先,你需要与授课教师或课程设计的相关人员沟通,明确课程设计的需求。这...

    一维PDE传热的问题大家一起学习吧-111.zip

     最近忙一个课题,是传热传质的一个pde,现在遇到问题了,写个帖子请教请教大家,顺便把这几天对pde的理解和大家分享分享。  本人上课学pde,也只是学了些皮毛,原本是想自己写个差分方程来的,后来发现强大的...

    一维PDE传热的问题大家一起学习吧-222.zip

     最近忙一个课题,是传热传质的一个pde,现在遇到问题了,写个帖子请教请教大家,顺便把这几天对pde的理解和大家分享分享。  本人上课学pde,也只是学了些皮毛,原本是想自己写个差分方程来的,后来发现强大的...

Global site tag (gtag.js) - Google Analytics