我模仿的kqueue來處理我的Centos箱事件的某些功能(我移植從FreeBSD的一些代碼),但我不理解的void *udata
在struct kevent
目的:struct kevent中的udata字段是什麼?
struct kevent {
uintptr_t ident; /* identifier for this event */
short filter; /* filter for event */
u_short flags; /* action flags for kqueue */
u_int fflags; /* filter flag value */
intptr_t data; /* filter data value */
void *udata; /* opaque user data identifier */
};
我試過搜索,但是我能找到關於這個領域的最長文獻形式是「不變地通過內核傳遞的不透明的用戶定義值」。這沒有多大幫助。
任何人都可以請清楚地向我解釋這個字段是什麼?而有人可以使用它?
換句話說,我可以用它指向任何我想要的東西。 kevent()忽略該字段,並且它在活動事件內部保持不變。我是否正確理解這一點? – SidR 2013-03-25 05:35:42
是的,你是對的。 – swpd 2013-03-25 05:39:43
非常感謝這篇論文。非常豐富。 – SidR 2013-03-25 05:40:43