ref: 2f850b4e65c8750b40a4447d11f4b0e0217997a2
dir: /sys/src/ape/lib/ap/gen/strndup.c/
#include <string.h> #include <ctype.h> #include <stdlib.h> char* strndup(char *p, size_t max) { int n; char *np; n = strnlen(p, max); np = malloc(n+1); if(!np) return NULL; memcpy(np, p, n); np[n] = 0; return np; }