#include #include char *strndup(const char *s, size_t n) { size_t l = strnlen(s, n); char *d = malloc(l+1); if (!d) return NULL; memcpy(d, s, l); d[l] = 0; return d; }