Hello, I'm trying to read from a file descriptor into an array of C structs allocated on the stack. When compiling, I get the following error, can't figure out what it means.
Relevant piece of code:
while (true) {
var ev = [_]c.input_event{undefined} ** 64;
const events_one: std.os.linux.epoll_event = undefined;
var events: [8]std.os.linux.epoll_event = .{events_one} ** 8;
const res: usize = std.os.linux.epoll_wait(@as(i32, @intCast(epoll_fd)), &events, 8, -1);
err = std.os.linux.E.init(res);
if (err != std.os.linux.E.SUCCESS) {
return error.EpollWait;
}
for (events) |event| {
err = std.os.linux.read(event.data.fd, std.mem.asBytes(&ev), ev.len);
if (err != std.os.linux.E.SUCCESS) {
return error.ReadInput;
}
}
}
The error:
install
└─ install hardware
└─ zig build-exe hardware Debug native 1 errors
src/main.zig:92:36: error: expected type 'os.linux.E__enum_3674', found 'usize'
err = std.os.linux.read(event.data.fd, std.mem.asBytes(&ev), ev.len);
~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ataractic/.zig/zig-linux-x86_64/lib/std/os/linux.zig:2554:13: note: enum declared here
else => enum(u16) {
^~~~
referenced by:
main: /home/ataractic/.zig/zig-linux-x86_64/lib/std/start.zig:515:32
remaining reference traces hidden; use '-freference-trace' to see all reference traces