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 › fileStatPosix Private Function fileStatPosix Doc Source Private Function std.Io.Threaded.fileStatPosix
fn fileStatPosix (userdata : ?*anyopaque , file : File ) File .StatError !File .Stat Params userdata : ?*anyopaque file : File File Io/Threaded.zig: 3973
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003 fn fileStatPosix (userdata : ?*anyopaque , file : File ) File .StatError !File .Stat {
const t : *Threaded = @ptrCast (@alignCast (userdata ));
_ = t ;
if (posix .Stat == void ) return error .Streaming ;
const syscall : Syscall = try .start ();
while (true ) {
var stat = std .mem .zeroes (posix .Stat );
switch (posix .errno (fstat_sym (file .handle , &stat ))) {
.SUCCESS => {
syscall .finish ();
return statFromPosix (&stat );
},
.INTR => {
try syscall .checkCancel ();
continue ;
},
else => |e | {
syscall .finish ();
switch (e ) {
.INVAL => |err | return errnoBug (err ),
.BADF => |err | return errnoBug (err ), // File descriptor used after closed.
.NOMEM => return error .SystemResources ,
.ACCES => return error .AccessDenied ,
else => |err | return posix .unexpectedErrno (err ),
}
},
}
}
}