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 library itself.

openat_direct

Queues an openat using direct (registered) file descriptors.

To use an accept direct variant, the application must first have registered a file table (with register_files). An unused table index will be dynamically chosen and returned in the CQE res field.

After creation, they can be used by setting IOSQE_FIXED_FILE in the SQE flags member, and setting the SQE fd field to the direct descriptor value rather than the regular file descriptor.

Available since 5.15

IoUring.openat_direct
pub fn openat_direct(
    self: *IoUring,
    user_data: u64,
    fd: linux.fd_t,
    path: [*:0]const u8,
    flags: linux.O,
    mode: posix.mode_t,
    file_index: u32,
) !*linux.io_uring_sqe

File

lib/std/os/linux/IoUring.zig:793

Code

pub fn openat_direct(
    self: *IoUring,
    user_data: u64,
    fd: linux.fd_t,
    path: [*:0]const u8,
    flags: linux.O,
    mode: posix.mode_t,
    file_index: u32,
) !*linux.io_uring_sqe {
    const sqe = try self.get_sqe();
    sqe.prep_openat_direct(fd, path, flags, mode, file_index);
    sqe.user_data = user_data;
    return sqe;
}