gpt4 book ai didi

linux - epoll_wait() 事件缓冲区重置

转载 作者:太空宇宙 更新时间:2023-11-04 12:18:53 27 4
gpt4 key购买 nike

epoll_wait() 的第二个参数是大小为 sizeof (struct epoll_event) * 调用者期望(或监视)的事件总数(文件描述符)的缓冲区。在第一次传递给 epoll_wait() 之前,这个缓冲区总是初始化为零。

对于下面的代码片段

memset(&events[0], 0, maxEvents * sizeof (struct epoll_event))
do
{
result = epoll_wait(epoll_fd, &events[0], maxEvents, timeout)
if (result)
{
//process events
}
} while (1)

每次 epoll_wait() 返回时,在处理完事件后重置 events 缓冲区是否好?

最佳答案

没有。

更好的方法是修复代码中的错误。 epoll_waitresult 不是 bool 值。它是一个整数,指定在提供的缓冲区列表中填充了多少缓冲区。

如果确保只读取那些,则根本不需要对缓冲区进行零初始化。

关于linux - epoll_wait() 事件缓冲区重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46591671/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com