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

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

NAME

     strdup, strndup - save a copy of a string

SYNOPSIS

     #include <string.h>

     char *
     strdup(const char *s);

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

DESCRIPTION

     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
     before appending a NUL byte.

     If insufficient memory is available, NULL is returned.

EXAMPLES

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

           char *p;

           p = strdup("foobar");
           if (p == NULL)
                   err(1, NULL);

ERRORS

     The strdup() and strndup() functions may fail and set the external vari-
     able errno for any of the errors specified for the library function
     malloc(3).

SEE ALSO

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

STANDARDS

     The strdup() and strndup() functions conform to IEEE Std 1003.1-2008
     ("POSIX").

HISTORY

     A strdup() macro was first used in the 4.1cBSD debugger, dbx. It was
     rewritten as a C function for the 4.3BSD inetd(8) and first appeared in
     the C library of 4.3BSD-Reno. The strndup() function is a GNU extension
     and first appeared in MirOS #10.

MirOS BSD #10-current         November 30, 2014                              1

Generated on 2015-04-13 10:26:13 by $MirOS: src/scripts/roff2htm,v 1.80 2015/01/02 13:54:19 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–2015 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.