1#include <stdlib.h> 2#include <string.h> 3 4char* 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