前排致謝:
先上**,再逐步分析。
#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指令碼程式設計,...