strdup


SYNOPSIS
       #include <string.h>

       char *strdup(const char *s);

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

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       strdup():
           _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
           || /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
       strndup():
           Since glibc 2.10:
               POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700
           Before glibc 2.10:
               _GNU_SOURCE
       strdupa(), strndupa(): _GNU_SOURCE

DESCRIPTION
       The strdup() function returns a pointer to a  new  string  which  is  a
       duplicate  of the string s.  Memory for the new string is obtained with
       malloc(3), and can be freed with free(3).

       The strndup() function is similar, but only copies at  most  n  charac-
       ters.   If s is longer than n, only n characters are copied, and a ter-
       minating null byte ('\0') is added.

       strdupa() and strndupa() are similar, but use alloca(3) to allocate the
       buffer.  They are only available when using the GNU GCC suite, and suf-
       fer from the same limitations described in alloca(3).

RETURN VALUE
       The strdup() function returns a pointer to the  duplicated  string,  or
       NULL if insufficient memory was available.

ERRORS
       ENOMEM Insufficient memory available to allocate duplicate string.

CONFORMING TO
       strdup() conforms to SVr4, 4.3BSD, POSIX.1-2001.  strndup() conforms to
       POSIX.1-2008.  strdupa() and strndupa() are GNU extensions.

SEE ALSO
       alloca(3), calloc(3), free(3), malloc(3), realloc(3),  string(3),  wcs-
       dup(3)

COLOPHON
       This  page  is  part of release 3.35 of the Linux man-pages project.  A
       description of the project, and information about reporting  bugs,  can
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2017 Hurricane Electric. All Rights Reserved.