c - 可以直接访问 epoll 兴趣列表(又名兴趣集)吗?
问题描述
我是 epoll 的新手。epoll 的手册页提到了一个兴趣列表(又名 epoll 集),它是就绪集的超集。如果你想通过添加新的 epoll 事件、删除旧的 epoll 事件或修改现有的 epoll 事件来修改兴趣列表,似乎可以使用epoll_ctl()
. 如果您想阅读当前的就绪集,似乎可以使用epoll_wait()
. 有没有办法访问兴趣列表?我正在寻找行为类似的东西,epoll_wait()
它会为您提供所有 epoll 事件的列表。
语境:
我的系统课让我们使用 epoll 到 I/O 多路复用,他们将使用 valgrind 来检查泄漏。我使用该epoll_event.data.ptr
字段指向我在堆上 malloc 的结构。当程序收到终止信号时,我需要释放所有这些。我认识到我可以在我身边创建一个活动的 epoll_events 列表,但我只是想确保在我这样做之前我没有重新发明轮子。
解决方案
你不是在重新发明轮子。在您自己的代码中跟踪您的代码正在处理的所有连接是正确的方法。
推荐阅读
- angular - 如何正确地将 id 和 data-target 的值与 angular2+ 绑定?
- javascript - 自动扩展公式,然后复制粘贴值
- python-3.x - 比较具有分数范围的两个班级
- c++-cli - ref 类可以按值存储在托管类中吗?
- python - Python修改全局变量
- java - java8 lambda参数类型转换为对象
- ruby - ruby 实例变量未初始化
- c# - C# 中 System.Globalization.StringInfo 上下文中的文本元素是什么?
- ruby - 在 Ruby 中处理中断并重试,直到 .. 执行循环
- c - 无需等待回车即可获取字符