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 › Threaded › dirReadLinkPosix Private Function dirReadLinkPosix Doc Source Private Function std.Io.Threaded.dirReadLinkPosix
fn dirReadLinkPosix (dir : Dir , sub_path : []const u8 , buffer : []u8 ) Dir .ReadLinkError !usize Params dir : Dir sub_path : []const u8 buffer : []u8 File Io/Threaded.zig: 8389
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424 fn dirReadLinkPosix (dir : Dir , sub_path : []const u8 , buffer : []u8 ) Dir .ReadLinkError !usize {
var sub_path_buffer : [posix .PATH_MAX ]u8 = undefined ;
const sub_path_posix = try pathToPosix (sub_path , &sub_path_buffer );
const syscall : Syscall = try .start ();
while (true ) {
const rc = posix .system .readlinkat (dir .handle , sub_path_posix , buffer .ptr , buffer .len );
switch (posix .errno (rc )) {
.SUCCESS => {
syscall .finish ();
const len : usize = @bitCast (rc );
return len ;
},
.INTR => {
try syscall .checkCancel ();
continue ;
},
else => |e | {
syscall .finish ();
switch (e ) {
.ACCES => return error .AccessDenied ,
.FAULT => |err | return errnoBug (err ),
.INVAL => return error .NotLink ,
.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 => return error .BadPathName ,
else => |err | return posix .unexpectedErrno (err ),
}
},
}
}
}