linux檢測目錄下檔案變化

2021-08-09 12:13:04 字數 1339 閱讀 4407

前排致謝:

先上**,再逐步分析。

#include #include #include #include static void *pirthread(void *id)

; char* eventptr;

int step = 0;

struct inotify_event event;

fd = inotify_init1(in_nonblock);

int step = 0;

inotify_add_watch(fd, "/home/xx.xx/work/v50/iisc/media",in_create|in_moved_to);//監聽是否有新檔案

while(1)

;

其中wd是inotify識別符號,inotify_add_watch()的返回值;

解析:

我們可以通過指標按照結構體中各元素大小解析出資料

char* eventptr;

int step = 0;

struct inotify_event event;

eventptr = data;

event.wd = *((int*)eventptr);

step +=sizeof(int);

//eventptr += sizeof(int);

event.mask = *((uint32_t*)(eventptr+step));

step += sizeof(uint32_t);

event.cookie = *((uint32_t*)(eventptr+step));

step += sizeof(uint32_t);

event.len = *((uint32_t*)(eventptr+step));

step += sizeof(uint32_t);

string filename(eventptr+step, event.len);

step = 0;

if(event.mask == in_create)

cout <<」new file was created:」<< event.mask << endl;

else if(event.mask == in_moved_to)

cout <<」new file was move to mydir」<< event.mask << endl;

sample:

linux 環境

git clone ;

cd cd li_checkfilechange_sample/

閱讀 readme

linux根目錄下檔案體系

bin 存放最常用命令 boot 啟動linux的核心檔案 dev 裝置檔案 etc 存放各種配置檔案 home 使用者主目錄 mnt 一般是空的,用來臨時掛載別的檔案系統 proc 虛擬目錄,是記憶體的對映 在此我還有一些疑問,就是關於bin目錄和usr目錄下的bin目錄,已知根目錄下bin目錄一...

linux 檢視目錄下檔案個數

linux之ls l grep wc l命令 檢視某資料夾下檔案的個數 ls l grep wc l 或find company type f wc l 檢視某資料夾下檔案的個數,包括子資料夾裡的。ls lr grep wc l 檢視某資料夾下資料夾的個數,包括子資料夾裡的。ls lr grep d...

linux 檢視目錄下檔案個數

統計某資料夾下檔案的個數 ls l grep wc l 統計某資料夾下目錄的個數 ls l grep wc l 統計資料夾下檔案的個數,包括子資料夾裡的 ls lr grep wc l shell是使用者與linux作業系統溝通的橋梁。使用者既可以輸入命令執行,又可以利用 shell指令碼程式設計,...