typedef union epoll_data {
void *ptr;
int fd;
__uint32_t u32;
__uint64_t u64;
} epoll_data_t;
struct epoll_event {
__uint32_t events; /* Epoll events */
epoll_data_t data; /* User data variable */
};
开始写了一段代码:
struct epoll_event epv = {0, {0}}; // 这段是抄袭的,开始看着有点奇怪,但是可以运行
epv.events = 5;
epv.data.ptr = &tmpValue;
epv.data.fd = 8;
// 发现到这里 epv.data.ptr 的值被改了
后面注意看epoll_data
是个 union.
网友评论