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