0

我试图理解 epoll_wait 中的“事件”指针。当 epoll_wait 返回时,这个指针是否指向所有事件结构都存在的某个内存(不是由用户分配的)?还是我们必须为这个指针分配内存,然后传递指针,以便事件在那个内存位置被填满?

如果必须分配内存,那么应该分配多少?假设我想在 10,000 个套接字上执行 epoll_wait。所有这些都将检查要读取的数据 (EPOLLIIN)。那么,我应该为 *events 分配相当于 10,000 个事件结构的内存吗?

谢谢,

虚拟网络

4

2 回答 2

1

您是否看过例如epoll(7)手册页中的示例?您需要提供实际的事件数组,或者作为示例中的正确数组,或者通过分配堆(并稍后释放它)。

于 2012-06-27T06:24:01.257 回答
1

MaxEvents 是您的数组在元素中的大小。如果分配的内存为sizeof(epoll_event) * 10maxEvents则为 10。 MaxEvents 与您正在侦听的套接字数量无关。

于 2015-02-08T21:33:44.477 回答