dwww Home | Manual pages | Find package

strdup(3)                  Library Functions Manual                  strdup(3)

NAME
       strdup, strndup, strdupa, strndupa - duplicate a string

LIBRARY
       Standard C library (libc, -lc)

SYNOPSIS
       #include <string.h>

       char *strdup(const char *s);

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

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

       strdup():
           _XOPEN_SOURCE >= 500
               || /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
               || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

       strndup():
           Since glibc 2.10:
               _POSIX_C_SOURCE >= 200809L
           Before glibc 2.10:
               _GNU_SOURCE

       strdupa(), strndupa():
           _GNU_SOURCE

DESCRIPTION
       The  strdup() function returns a pointer to a new string which is a du-
       plicate 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 copies at most n bytes.  If s is
       longer  than  n,  only  n bytes are copied, and a terminating null byte
       ('\0') is added.

       strdupa() and strndupa() are similar, but use alloca(3) to allocate the
       buffer.

RETURN VALUE
       On success, the strdup() function returns a pointer to  the  duplicated
       string.  It returns NULL if insufficient memory was available, with er-
       rno set to indicate the error.

ERRORS
       ENOMEM Insufficient memory available to allocate duplicate string.

ATTRIBUTES
       For  an  explanation  of  the  terms  used in this section, see attrib-
       utes(7).
       ┌───────────────────────────────────────────┬───────────────┬─────────┐
       │ Interface                                 Attribute     Value   │
       ├───────────────────────────────────────────┼───────────────┼─────────┤
       │ strdup(), strndup(), strdupa(),           │ Thread safety │ MT-Safe │
       │ strndupa()                                │               │         │
       └───────────────────────────────────────────┴───────────────┴─────────┘

STANDARDS
       strdup()
       strndup()
              POSIX.1-2008.

       strdupa()
       strndupa()
              GNU.

HISTORY
       strdup()
              SVr4, 4.3BSD-Reno, POSIX.1-2001.

       strndup()
              POSIX.1-2008.

       strdupa()
       strndupa()
              GNU.

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

Linux man-pages 6.7               2023-10-31                         strdup(3)

Generated by dwww version 1.16 on Tue Dec 16 11:06:51 CET 2025.