strndupa(3) Library Functions Manual strndupa(3)

strndupa - nonstring duplicate-into-string using-alloca

Standard C library (libc-lc)

#define _GNU_SOURCE  /* See feature_test_macros(7) */
#include <string.h>  // see memory.h(3head)
char *strndupa(size_t n;
              const char strn[n], size_t n);

strndupa() is similar to strndup(3), but uses alloca(3) to allocate the buffer.

It is equivalent to


strncat(strcpy(alloca(n + 1), ""), strn, n)

On success, this macro returns a pointer to the duplicated string.

For an explanation of the terms used in this section, see attributes(7).

Interface Attribute Value
strndupa () Thread safety MT-Safe

GNU.

GNU.

memory.h(3head), alloca(3), strndup(3)

2026-08-17 Linux man-pages 6.19