Advertisement

Linux/Unix使用inotify与hook函数监控文件事件

阅读量:

在实际的开发过程中,常常会涉及大量文件相关操作,或需要对文件事件进行追踪与分析。当代码复杂度达到较高水平,或者项目本身采用多线程架构时(实际上,利用多线程处理磁盘文件IO并不被推荐)。此时,为了进行某些错误排查与分析,必须对文件事件进行检测,这就涉及到对文件IO事件的相关操作。

一,使用系统API Inotify来监控文件事件

在Linux操作系统中,能够借助inotify函数族实现对文件事件的监测功能。

通过调用inotify相关函数即可实现该任务。

示例代码如下:

复制代码
 #include <stdio.h>

    
 #include <stdlib.h>
    
 #include <errno.h>
    
 #include <unistd.h>
    
 #include <sys/types.h>
    
 #include <sys/inotify.h>
    
  
    
 #define EVENT_SIZE      (sizeof (struct inotify_event))
    
 #define BUF_LEN         (10 * (EVENT_SIZE + 256))
    
  
    
 static const char * filetype[] = {"directory", "file

全部评论 (0)

还没有任何评论哟~