/* * strndup.c */ #include #include char *strndup(const char *s, size_t n) { int l = n > strlen(s) ? strlen(s) + 1 : n + 1; char *d = malloc(l); if (!d) return NULL; memcpy(d, s, l); d[n] = '\0'; return d; }