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 › Io › Uring › realPath Private Function realPath Doc Source Private Function std.Io.Uring.realPath
fn realPath (
ev : *Evented ,
sync : *CancelRegion .Sync ,
fd : fd_t ,
out_buffer : []u8 ,
) File .RealPathError !usize Params File Io/Uring.zig: 5788
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816 fn realPath (
ev : *Evented ,
sync : *CancelRegion .Sync ,
fd : fd_t ,
out_buffer : []u8 ,
) File .RealPathError !usize {
_ = ev ;
var procfs_buf : [std .fmt .count ("/proc/self/fd/{d}\x00" , .{std .math .minInt (fd_t )})]u8 = undefined ;
const proc_path = std .mem .printSentinel (&procfs_buf , "/proc/self/fd/{d}" , .{fd }, 0 ) catch
unreachable ;
while (true ) {
try sync .cancel_region .await (.nothing );
const rc = linux .readlink (proc_path , out_buffer .ptr , out_buffer .len );
switch (linux .errno (rc )) {
.SUCCESS => return rc ,
.INTR => {},
.ACCES => return error .AccessDenied ,
.FAULT => |err | return errnoBug (err ),
.IO => return error .FileSystem ,
.LOOP => return error .SymLinkLoop ,
.NAMETOOLONG => return error .NameTooLong ,
.NOENT => return error .FileNotFound ,
.NOMEM => return error .SystemResources ,
.NOTDIR => return error .NotDir ,
.ILSEQ => |err | return errnoBug (err ),
else => |err | return unexpectedErrno (err ),
}
}
}