分页: 1 / 1

epoll_event event结构体的初始化

发表于 : 2009-06-17 15:02
weihua2008
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 */
} __attribute__ ((__packed__));


在使用的过程中
首先我声明了一个结构体变量
epoll_event ev;

初始化:
ev.events = EPOLLIN;
ev.data.fd = anSocket;
在使用过程中检测工具说我的ev没哟初始化,我看看了
是我的ev.data联合体只初始化了一项,其余的三项没有初始化的原因。
void *ptr;
uint32_t u32;
uint64_t u64;
因为我不是很清楚其余三项的作用,所以我没有使用,既然说我没哟初始化,我就随便给初始化了一把
ev.data ptr = NULL;
ev.data.u32 = 0;
ev.data.u64 = 0LL;
检测时没有未初始化的提示了,但是我的epoll失效了,不管是有数据还是连接到来一律失效,recv函数失败
返回88或是80号错误
有没有高人给指点一把

Re: epoll_event event结构体的初始化

发表于 : 2009-07-11 10:45
weihua2008
哦了,哈哈