fn strlcat(dst: [*:0]c_char, src: [*:0]const c_char, dst_total_len: usize) callconv(.c) usize
fn strlcat(dst: [*:0]c_char, src: [*:0]const c_char, dst_total_len: usize) callconv(.c) usize { const dst_len = strnlen(dst, dst_total_len); const src_bytes = std.mem.span(@as([*:0]const u8, @ptrCast(src))); if (dst_total_len == dst_len) return dst_len + src_bytes.len; const copying_len = @min(dst_total_len - (dst_len + 1), src_bytes.len); @memcpy(dst[dst_len..][0..copying_len], src[0..copying_len]); dst[dst_len + copying_len] = 0; return dst_len + src_bytes.len; }