inotify event中檔名變長的記憶體處理

2021-10-05 20:00:42 字數 430 閱讀 7400

最近在使用inotify做檔案系統變化的監控時,對inotify_event中的name的記憶體對齊理解出現了誤差,在此記錄一下。

檔案事件通過inotify_event 結構體表示,它通過使用檔案讀取函式 read (檔案描述符由inotify_init() 返回)來獲得,結構體內容如下:

struct inotify_event ;
結構中的 wd 為被監視目標的 watch 描述符,mask 為事件掩碼,len 為 name字串的長度,name 為被監視目標的路徑名,該結構的 name 欄位為乙個樁,它只是為了使用者方面引用檔名,檔名是變長的,它實際緊跟在該結構的後面,檔名將被 0 填充以使下乙個事件結構能夠 4 位元組對齊。注意,len 也把填充位元組數統計在內,在實際使用時,最好通過strlen來獲取檔名的真實長度。

linux中資料夾中檔案排序顯示

在檢視linux檔案的時候,大家都習慣用ls 命令來對進行檢視。ls的引數很多,這裡就不一一說明了,有興趣的直接在控制台 ls help 可以看到所有資訊。資料夾中檔案多的時候,大家就會想到要排序了。排序的話在ls 命令中使用的是 t c u引數。敲入ls help 命令檢視說明 c with lt...

struts中檔案上傳

struts本身對檔案上傳進行了支援.在struts config.xml中進行配置 form bean name upfileform type org.apache.struts.action.dynaactionform form property name upfile type org.a...

LINUX中檔案描述

對於linux作業系統來說,它是以檔案為基礎而設計的,即一切操作皆檔案。linux的檔案子系統主要用於管理檔案儲存空間的分配 檔案訪問許可權的維護 對檔案的各種操作。檔案主要包含兩方面的內容 一是檔案本身所包含的資料 另一是檔案的屬性,也稱元資料,包括檔案的訪問許可權 所有者 檔案大小 建立日期等。...