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 › Dispatch › dirSetFileOwner Private Function dirSetFileOwner Doc Source Private Function std.Io.Dispatch.dirSetFileOwner
fn dirSetFileOwner (
userdata : ?*anyopaque ,
dir : Dir ,
sub_path : []const u8 ,
owner : ?File .Uid ,
group : ?File .Gid ,
options : Dir .SetFileOwnerOptions ,
) Dir .SetFileOwnerError !void Params userdata : ?*anyopaque dir : Dir sub_path : []const u8 owner : ?File .Uid group : ?File .Gid options : Dir .SetFileOwnerOptions File Io/Dispatch.zig: 3105
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139 fn dirSetFileOwner (
userdata : ?*anyopaque ,
dir : Dir ,
sub_path : []const u8 ,
owner : ?File .Uid ,
group : ?File .Gid ,
options : Dir .SetFileOwnerOptions ,
) Dir .SetFileOwnerError !void {
const ev : *Evented = @ptrCast (@alignCast (userdata ));
var path_buffer : [c .PATH_MAX ]u8 = undefined ;
const sub_path_posix = try pathToPosix (sub_path , &path_buffer );
_ = ev ;
while (true ) switch (c .errno (c .fchownat (
dir .handle ,
sub_path_posix ,
owner orelse std .math .maxInt (c .uid_t ),
group orelse std .math .maxInt (c .gid_t ),
if (options .follow_symlinks ) 0 else c .AT .SYMLINK_NOFOLLOW ,
))) {
.SUCCESS => return ,
.INTR => continue ,
.BADF => |err | return errnoBug (err ), // likely fd refers to directory opened without `Dir.OpenOptions.iterate`
.FAULT => |err | return errnoBug (err ),
.INVAL => |err | return errnoBug (err ),
.ACCES => return error .AccessDenied ,
.IO => return error .InputOutput ,
.LOOP => return error .SymLinkLoop ,
.NOENT => return error .FileNotFound ,
.NOMEM => return error .SystemResources ,
.NOTDIR => return error .FileNotFound ,
.PERM => return error .PermissionDenied ,
.ROFS => return error .ReadOnlyFileSystem ,
else => |err | return unexpectedErrno (err ),
};
}