Rust 如何在防锈漆中使用epoll
我偶然发现库在rust中支持Rust 如何在防锈漆中使用epoll,rust,epoll,Rust,Epoll,我偶然发现库在rust中支持epoll,但我不确定如何正确使用epoll:wait函数: let mut events = [Event; 10]; rc = epoll::wait(self.vfio_epoll_fd, timeout, &mut events)?; 如果有人能给我举一些例子,我会很高兴的:)提前感谢你们的支持 编译上述代码时出现以下错误: 错误[E0423]:预期值,找到struct`Event` -->src/interrupts.rs:132:27 | 132
epoll
,但我不确定如何正确使用epoll:wait
函数:
let mut events = [Event; 10];
rc = epoll::wait(self.vfio_epoll_fd, timeout, &mut events)?;
如果有人能给我举一些例子,我会很高兴的:)提前感谢你们的支持
编译上述代码时出现以下错误:
错误[E0423]:预期值,找到struct`Event`
-->src/interrupts.rs:132:27
|
132 |让mut events=[Event;10];
|^^^^^^你是说“事件{/*字段*/}”吗?
事件结构如下所示:
pub struct Event {
pub events: Events,
pub data: u64,
}
问题是我不知道什么是
Events
,因为它是一个位标志。因为Events
是epoll::wait
的一个输出参数,您可以在其中输入任何内容,但需要输入有效值。合理的默认值是空事件集:
let mut events = [Event::empty(); 10];
事件
是由位标志
宏生成的结构,因此查看源代码对理解如何使用它没有多大帮助,但幸运的是,位标志
也为生成的结构生成了相当全面的数据。您到底有什么问题?@mcarton如何定义事件数组?您显示的代码会发生什么情况?它不能编译吗?用什么信息?它不能运行吗?用什么信息?它是否运行但没有达到您的预期?您期望得到什么以及它做了什么?@Jmb查看更新的答案,因为它是一个位标志
——它不是位标志,而是一个结构。您是否签出了?对我不起作用我在Event::empty()上的“epoll::Event”中未找到函数或关联项确定现在找到了解决方案:让mut events=[Event::new(events::empty(),0);10]代码>感谢您的支持:)