ref: 0803fab7c33f0ea21405ae1ff8b11f62bba73bca
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; }