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 { 6 size_t l = strnlen(s, n); 7 char *d = malloc(l+1); 8 if (!d) return NULL; 9 memcpy(d, s, l); 10 d[l] = 0; 11 return d; 12 } 13