fn strncat(noalias dst: [*:0]c_char, noalias src: [*:0]const c_char, max: usize) callconv(.c) [*:0]c_char
fn strncat(noalias dst: [*:0]c_char, noalias src: [*:0]const c_char, max: usize) callconv(.c) [*:0]c_char { const dst_len = std.mem.len(@as([*:0]u8, @ptrCast(dst))); const src_len = strnlen(src, max); @memcpy(dst[dst_len..][0..src_len], src[0..src_len]); dst[dst_len + src_len] = 0; return dst[0..(dst_len + src_len) :0].ptr; }