strndup.c raw

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