| STRDUP(3) | Library Functions Manual | STRDUP(3) | 
strdup, strndup —
#include <string.h>
char *
  
  strdup(const
    char *str);
char *
  
  strndup(const
    char *str, size_t
    len);
strdup() function allocates sufficient memory for a
  copy of the string str, does the copy, and returns a
  pointer to it. The pointer may subsequently be used as an argument to the
  function free(3).
If insufficient memory is available, NULL
    is returned.
The strndup() function copies at most
    len characters from the string
    str always NUL terminating the
    copied string.
char *p;
if ((p = strdup("foobar")) == NULL) {
	fprintf(stderr, "Out of memory.\n");
	exit(1);
}
strdup() function may fail and set the external
  variable errno for any of the errors specified for the
  library function malloc(3).
strdup() function conforms to IEEE
  Std 1003.1-2001 (“POSIX.1”).
strdup() function first appeared in
  4.4BSD. The strndup() function
  was added in NetBSD 4.0.
| January 28, 2009 | NetBSD 9.3 |