1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#define _BSD_SOURCE #include <string.h> size_t strlcat(char *d, const char *s, size_t n) { size_t l = strnlen(d, n); if (l == n) return l + strlen(s); return l + strlcpy(d+l, s, n-l); } #ifdef TEST int main(void) { return 0; } #endif