.\" 386BSD man pages
.\" Modified Sun Jul 25 10:41:34 1993 by Rik Faith (faith@cs.unc.edu)
.\" Modified Wed Oct 17 01:12:26 2001 by John Levon <moz@compsoc.man.ac.uk>
-.TH STRDUP 3 2012-05-10 "GNU" "Linux Programmer's Manual"
+.TH STRDUP 3 2013-04-19 "GNU" "Linux Programmer's Manual"
.SH NAME
strdup, strndup, strdupa, strndupa \- duplicate a string
.SH SYNOPSIS
.RS 4
.TP 4
Since glibc 2.10:
-POSIX_C_SOURCE\ >=\ 200809L || _XOPEN_SOURCE\ >=\ 700
+_POSIX_C_SOURCE\ >=\ 200809L || _XOPEN_SOURCE\ >=\ 700
.TP
Before glibc 2.10:
_GNU_SOURCE
The
.BR strdup ()
function returns a pointer to a new string which
-is a duplicate of the string \fIs\fP.
+is a duplicate of the string
+.IR s .
Memory for the new string is
obtained with
.BR malloc (3),
The
.BR strndup ()
function is similar, but copies at most
-\fIn\fP bytes.
-If \fIs\fP is longer than \fIn\fP, only \fIn\fP
+.I n
+bytes.
+If
+.I s
+is longer than
+.IR n ,
+only
+.I n
bytes are copied, and a terminating null byte (\(aq\\0\(aq) is added.
.BR strdupa ()
GCC suite, and suffer from the same limitations described in
.BR alloca (3).
.SH RETURN VALUE
-The
+On success, the
.BR strdup ()
function returns a pointer to the duplicated
-string, or NULL if insufficient memory was available.
+string.
+It returns NULL if insufficient memory was available, with
+.I errno
+set to indicate the cause of the error.
.SH ERRORS
.TP
.B ENOMEM
.BR realloc (3),
.BR string (3),
.BR wcsdup (3)
+.SH COLOPHON
+This page is part of release 3.79 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%http://www.kernel.org/doc/man\-pages/.