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 library itself.

ftruncate

linux.ftruncate
pub fn ftruncate(fd: fd_t, length: off_t) usize

File

lib/std/os/linux.zig:1623

Code

pub fn ftruncate(fd: fd_t, length: off_t) usize {
    if (@sizeOf(syscall_arg_t) < @sizeOf(u64)) {
        const length_halves = splitValue64(length);
        if (require_aligned_register_pair) {
            return syscall4(
                .ftruncate64,
                @as(u32, @bitCast(fd)),
                0,
                length_halves[0],
                length_halves[1],
            );
        } else {
            return syscall3(
                .ftruncate64,
                @as(u32, @bitCast(fd)),
                length_halves[0],
                length_halves[1],
            );
        }
    } else {
        return syscall2(
            .ftruncate,
            @as(u32, @bitCast(fd)),
            @as(u64, @bitCast(length)),
        );
    }
}