Zig 0.17.0-dev (Split by item) This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig standard library.
std › os › linux › IoUring › read Public Function read Doc Source Public Function std.os.linux.IoUring.read
pub fn read (
self : *IoUring ,
user_data : u64 ,
fd : linux .fd_t ,
buffer : ReadBuffer ,
offset : u64 ,
) !*linux .io_uring_sqe Params File os/linux/IoUring.zig: 393
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412 pub fn read (
self : *IoUring ,
user_data : u64 ,
fd : linux .fd_t ,
buffer : ReadBuffer ,
offset : u64 ,
) !*linux .io_uring_sqe {
const sqe = try self .get_sqe ();
switch (buffer ) {
.buffer => |slice | sqe .prep_read (fd , slice , offset ),
.iovecs => |vecs | sqe .prep_readv (fd , vecs , offset ),
.buffer_selection => |selection | {
sqe .prep_rw (.READ , fd , 0 , selection .len , offset );
sqe .flags |= linux .IOSQE_BUFFER_SELECT ;
sqe .buf_index = selection .group_id ;
},
}
sqe .user_data = user_data ;
return sqe ;
}
Queues (but does not submit) an SQE to perform a
read(2)orpreadv(2)depending on the buffer type.ReadBuffer.bufferusesread(2)ReadBuffer.iovecsusespreadv(2)If you want to do apreadv2(2)then setrw_flagson the returned SQE. See https://man7.org/linux/man-pages/man2/preadv2.2.htmlReturns a pointer to the SQE.