MirOS Manual: strdup(3), strndup(3)

STRDUP(3)                  BSD Programmer's Manual                   STRDUP(3)


     strdup, strndup - save a copy of a string


     #include <string.h>

     char *
     strdup(const char *s);

     #define _GNU_SOURCE
     #include <string.h>

     char *
     strndup(const char *s, size_t n);


     The strdup() function allocates sufficient memory for a copy of the
     string s, does the copy, and returns a pointer to it. The pointer may
     subsequently be used as an argument to the function free(3). The
     strndup() function copies at most n characters from the source string be-
     fore appending a NUL byte.

     If insufficient memory is available, NULL is returned.


     The following will point p to an allocated area of memory containing the
     NUL-terminated string "foobar":

           char *p;

           if ((p = strdup("foobar")) == NULL) {
                   fprintf(stderr, "Out of memory.\n");


     The strdup() function may fail and set the external variable errno for
     any of the errors specified for the library function malloc(3).


     free(3), malloc(3), strcpy(3), strlcpy(3), strlen(3)


     The strdup() function first appeared in 4.4BSD. The strndup() function is
     a GNU extension and first appeared in MirOS #10.

MirOS BSD #10-current           June 16, 2007                                1

Generated on 2014-07-04 21:17:45 by $MirOS: src/scripts/roff2htm,v 1.79 2014/02/10 00:36:11 tg Exp $

These manual pages and other documentation are copyrighted by their respective writers; their source is available at our CVSweb, AnonCVS, and other mirrors. The rest is Copyright © 2002‒2014 The MirOS Project, Germany.
This product includes material provided by Thorsten Glaser.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report – diffs preferred.