Я эмуляция определенную функциональность Kqueue для обработки событий в моей коробке Centos (я портирование некоторый код из FreeBSD), но я не в состоянии понять цель void *udata
в struct kevent
:Что такое поле udata в 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 */
};
Я пробовал поиск, но самая длинная форма литературы, которую я мог найти в этом поле, - «Непрозрачное пользовательское значение, прошедшее через ядро без изменений». Это не очень помогает.
Может кто-нибудь, пожалуйста, объясните мне, что это за поле? И для чего кто-то мог его использовать?
Другими словами, я могу использовать его, чтобы указать на * что-нибудь, что я хочу. kevent() игнорирует поле, и он возвращается без изменений внутри активных событий. Я правильно понимаю это? – SidR
yup, вы правы. – swpd
Большое спасибо за бумагу. Очень информативно. – SidR