我正在模拟 kqueue 的某些功能来处理我的 Centos 框中的事件(我正在从 FreeBSD 移植一些代码),但我无法理解void *udata
in的目的struct kevent
:
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 */
};
我试过搜索,但我能找到的关于这个字段的最长的文献形式是“不透明的用户定义的值通过内核保持不变”。这没有多大帮助。
谁能清楚地向我解释一下这个领域是什么?有人可以用它做什么?