rust - rust中如何使用epoll
问题描述
我遇到了这个库来支持epoll
rust,但我不确定如何正确使用该epoll:wait
功能:
let mut events = [Event; 10];
rc = epoll::wait(self.vfio_epoll_fd, timeout, &mut events)?;
如果有人可以为我提供一些入门示例,那就太好了:) 提前感谢您的支持。
编译上述代码时出现以下错误:
error[E0423]: expected value, found struct `Event`
--> src/interrupts.rs:132:27
|
132 | let mut events = [Event; 10];
| ^^^^^ did you mean `Event { /* fields */ }`?
事件结构如下所示:
pub struct Event {
pub events: Events,
pub data: u64,
}
问题是我不知道什么Events
是位标志。
解决方案
因为events
是一个输出参数,epoll::wait
你可以在里面放任何东西,但是你需要放一个有效的值。一个合理的默认设置是一个空事件集:
let mut events = [Event::empty(); 10];
Events
是由宏生成的结构bitflags
,因此查看源代码对理解如何使用它没有多大帮助,但幸运的是,bitflags
它还为生成的结构生成了相当全面的文档。
推荐阅读
- javascript - 再次出现错误“SyntaxError”,但现在我按照我过去问题的答案
- python-3.x - 如何访问存储在 Google Cloud Storage 中的 jpeg 文件?
- keras - 图像回归:正方形的宽度
- c# - 通过列表框项目选择c#更改复选框的状态
- flutter - 在构建中获取 context.read() 功能
- vb6 - 将 DateValue() 与 datetime2 一起使用时类型不匹配
- azure - 更新私有 DNS 后需要重新创建应用程序网关规则
- react-native - 如何确定文档是否从 PouchDB 同步到 CouchDB?
- sql - 有没有办法在 Big Query 的滚动窗口上使用 percentile_cont() 函数计算百分位数?
- cognos - 要传递给 SQL 的 Cognos Static 提示值