【发布时间】:2022-01-06 04:23:55
【问题描述】:
struct sockitem* NewSockItem(int sockfd, CallBack cb) {
struct sockitem *si = (struct sockitem*)malloc(sizeof(struct sockitem));
si->sockfd = sockfd;
si->callback = cb;
return si;
}
struct epoll_event ev;
ev.events = EPOLLIN | EPOLLET;
ev.events.ptr = NewSockItem(clientfd, recv_cb);
epoll_ctl(eventloop->epfd, EPOLL_CTL_ADD, clientfd, &ev);
构建时,错误发生如下:
【问题讨论】:
-
不应该是
ev.data.ptr吗?只需按照man7.org/linux/man-pages/man2/epoll_wait.2.html 中的struct的定义进行 -
您更改了出现错误的代码行。现在错误消息不再适合代码。错误说它在
ev.event.ptr = ...行中,但你只有ev.data.ptr = ...。您目前的问题是什么? -
使用 ev.data.ptr,而不是 ev.events.ptr
-
对于未来的问题,请不要添加指向纯文本图片的链接。相反,只需将您的文本输出直接添加到问题中。