inotify:是一種強大的、細粒度的、非同步的機制,它滿足各種各校的檔案監控需要。
inotify 可以監視的檔案系統事件包括:
in_access,即檔案被訪問
in_modify,檔案被 write
in_attrib,檔案屬性被修改,如 chmod、chown、touch 等
in_close_write,可寫檔案被 close
in_close_nowrite,不可寫檔案被 close
in_open,檔案被 open
in_moved_from,檔案被移走,如 mv
in_moved_to,檔案被移來,如 mv、cp
in_create,建立新檔案
in_delete,檔案被刪除,如 rm
in_delete_self,自刪除,即乙個可執行檔案在執行時刪除自己
in_move_self,自移動,即乙個可執行檔案在執行時移動自己
in_unmount,宿主檔案系統被 umount
in_close,檔案被關閉,等同於(in_close_write | in_close_nowrite)
in_move,檔案被移動,等同於(in_moved_from | in_moved_to)
注:上面所說的檔案也包括目錄。
inotify原始碼安裝
安裝inotify
wget
tar zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure
make
make install
例項:#include
#include
#include
#include
#include
using namespace std;
//_syscall0(int, inotify_init)
//_syscall3(int, inotify_add_watch, int, fd, const char *, path, __u32, mask)
//_syscall2(int, inotify_rm_watch, int, fd, __u32, mask)
char * monitored_files = ;
struct wd_name ;
#define wd_num 2
struct wd_name wd_array[wd_num];
char * event_array = ;
#define event_num 16
#define max_buf_size 1024
int main(void)
{int fd;
int wd;
char buffer[1024];
char * offset = null;
struct inotify_event * event;
int len, tmp_len;
char strbuf[16];
int i = 0;
Linux 2 6核心編譯,核心公升級
本文描述了在fc8下公升級linux核心為2.6.25的詳細步驟.1.首先從如下 得到linux 2.6.25.2.然後在 usr src下untar這個包.tar xjfv linux 2.6.25.tar.bz2 3.配置核心 cd usr src linux 2.6.25 make mrpro...
Linux2 6核心啟動分析
我們已知u boot的終極目的是啟動核心,那麼核心啟動的開始必定是u boot傳入的引數。開啟armlinux.c 發現有一行的 為 thekernel 0,bd bi arch number,bd bi boot params 帶入三個引數 第乙個引數是0,第二個引數是機器id,第三個引數是引數所...
Linux 2 6 核心驅動移植
隨著 linux 2.6的發布,由於2.6核心做了教的改動,各個裝置的 驅動程式在不同程度上要進行改寫。為了方便各位linux愛好者我把自己整理的這分文件share出來。該文當列舉了2.6核心同以前版本的絕大多數變化,可惜的是由於時間和精力有限沒有詳細列出各個函式的用法。1 使用新的入口 必須包含 ...