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 › posixSeekTo Private Function posixSeekTo Doc Source Private Function std.Io.Threaded.posixSeekTo
fn posixSeekTo (fd : posix .fd_t , offset : u64 ) File .SeekError !void Params fd : posix .fd_t offset : u64 File Io/Threaded.zig: 10417
10417
10418
10419
10420
10421
10422
10423
10424
10425
10426
10427
10428
10429
10430
10431
10432
10433
10434
10435
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445
10446
10447
10448
10449
10450
10451
10452
10453
10454
10455
10456
10457
10458
10459
10460
10461
10462
10463
10464
10465
10466
10467
10468
10469
10470 fn posixSeekTo (fd : posix .fd_t , offset : u64 ) File .SeekError !void {
if (native_os == .linux and !builtin .link_libc and @sizeOf (posix .system .syscall_arg_t ) == 4 ) {
const syscall : Syscall = try .start ();
while (true ) {
var result : i64 = undefined ;
switch (posix .errno (posix .system .llseek (fd , @bitCast (offset ), &result , posix .SEEK .SET ))) {
.SUCCESS => {
syscall .finish ();
return ;
},
.INTR => {
try syscall .checkCancel ();
continue ;
},
else => |e | {
syscall .finish ();
switch (e ) {
.BADF => |err | return errnoBug (err ), // File descriptor used after closed.
.INVAL => return error .Unseekable ,
.OVERFLOW => return error .Unseekable ,
.SPIPE => return error .Unseekable ,
.NXIO => return error .Unseekable ,
else => |err | return posix .unexpectedErrno (err ),
}
},
}
}
}
const syscall : Syscall = try .start ();
while (true ) {
switch (posix .errno (lseek_sym (fd , @bitCast (offset ), posix .SEEK .SET ))) {
.SUCCESS => {
syscall .finish ();
return ;
},
.INTR => {
try syscall .checkCancel ();
continue ;
},
else => |e | {
syscall .finish ();
switch (e ) {
.BADF => |err | return errnoBug (err ), // File descriptor used after closed.
.INVAL => return error .Unseekable ,
.OVERFLOW => return error .Unseekable ,
.SPIPE => return error .Unseekable ,
.NXIO => return error .Unseekable ,
else => |err | return posix .unexpectedErrno (err ),
}
},
}
}
}