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 › dirDeleteDirPosix Private Function dirDeleteDirPosix Doc Source Private Function std.Io.Threaded.dirDeleteDirPosix
fn dirDeleteDirPosix (userdata : ?*anyopaque , dir : Dir , sub_path : []const u8 ) Dir .DeleteDirError !void Params userdata : ?*anyopaque dir : Dir sub_path : []const u8 File Io/Threaded.zig: 7556
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599 fn dirDeleteDirPosix (userdata : ?*anyopaque , dir : Dir , sub_path : []const u8 ) Dir .DeleteDirError !void {
const t : *Threaded = @ptrCast (@alignCast (userdata ));
_ = t ;
var path_buffer : [posix .PATH_MAX ]u8 = undefined ;
const sub_path_posix = try pathToPosix (sub_path , &path_buffer );
const syscall : Syscall = try .start ();
while (true ) {
switch (posix .errno (posix .system .unlinkat (dir .handle , sub_path_posix , posix .AT .REMOVEDIR ))) {
.SUCCESS => {
syscall .finish ();
return ;
},
.INTR => {
try syscall .checkCancel ();
continue ;
},
else => |e | {
syscall .finish ();
switch (e ) {
.ACCES => return error .AccessDenied ,
.PERM => return error .PermissionDenied ,
.BUSY => return error .FileBusy ,
.FAULT => |err | return errnoBug (err ),
.IO => return error .FileSystem ,
.ISDIR => |err | return errnoBug (err ),
.LOOP => return error .SymLinkLoop ,
.NAMETOOLONG => return error .NameTooLong ,
.NOENT => return error .FileNotFound ,
.NOTDIR => return error .NotDir ,
.NOMEM => return error .SystemResources ,
.ROFS => return error .ReadOnlyFileSystem ,
.EXIST => |err | return errnoBug (err ),
.NOTEMPTY => return error .DirNotEmpty ,
.ILSEQ => return error .BadPathName ,
.INVAL => |err | return errnoBug (err ), // invalid flags, or pathname has . as last component
.BADF => |err | return errnoBug (err ), // File descriptor used after closed.
else => |err | return posix .unexpectedErrno (err ),
}
},
}
}
}