1 #include <stdlib.h>
2 #include <string.h>
3 
strndup(const char * s,size_t n)4 char* strndup(const char* s, size_t n) {
5     size_t l = strnlen(s, n);
6     char* d = malloc(l + 1);
7     if (!d)
8         return NULL;
9     memcpy(d, s, l);
10     d[l] = 0;
11     return d;
12 }
13