int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);
我对 maxevents 参数有点困惑。假设我想编写一个可以处理多达 10k 连接的服务器。那么我会将 maxevents 定义为 10000,还是出于某种原因它应该更低?
最佳答案
Maxevents就是*events
指向的struct epoll_events
数组的长度。
如果内核当时有超过该数量的事件要提供给您的程序,它将发现它不应该,因为您不希望在那个特定的 _wait 中返回那么多。
您可能需要为您的程序试验最佳大小。最佳尺寸甚至可能因架构而异。对于正在轮询的少量文件描述符,您可以很容易地将 maxevents
设置为文件数(并相应地调整 events
数组的大小),但是所有文件需要的可能性同时注意力很低,因此您可能可以使用较低的 maxevents
值。
关于c - epoll_wait : maxevents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2969425/