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.
Zig › std/ › Io/ › Uring.zig › processCurrentPath
processCurrentPath
Uring.processCurrentPath
fn processCurrentPath (userdata : ?*anyopaque , buffer : []u8 ) process .CurrentPathError !usize
File
Code
fn processCurrentPath (userdata : ?*anyopaque , buffer : []u8 ) process .CurrentPathError !usize {
const ev : *Evented = @ptrCast (@alignCast (userdata ));
var sync : CancelRegion .Sync = try .init (ev );
defer sync .deinit (ev );
while (true ) {
try sync .cancel_region .await (.nothing );
switch (linux .errno (linux .getcwd (buffer .ptr , buffer .len ))) {
.SUCCESS => return std .mem .findScalar (u8 , buffer , 0 ).?,
.INTR => {},
.NOENT => return error .CurrentDirUnlinked ,
.RANGE => return error .NameTooLong ,
.FAULT => |err | return errnoBug (err ),
.INVAL => |err | return errnoBug (err ),
else => |err | return unexpectedErrno (err ),
}
}
}