summaryrefslogtreecommitdiffstats
path: root/man3/strdup.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/strdup.3')
-rw-r--r--man3/strdup.378
1 files changed, 78 insertions, 0 deletions
diff --git a/man3/strdup.3 b/man3/strdup.3
new file mode 100644
index 000000000..b15db54f2
--- /dev/null
+++ b/man3/strdup.3
@@ -0,0 +1,78 @@
+.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
+.\"
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein. The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.\" References consulted:
+.\" Linux libc source code
+.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
+.\" 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 1993-04-12 "GNU" "Linux Programmer's Manual"
+.SH NAME
+strdup, strndup, strdupa, strndupa \- duplicate a string
+.SH SYNOPSIS
+.nf
+.B #include <string.h>
+.sp
+.BI "char *strdup(const char *" s );
+.sp
+.B #define _GNU_SOURCE
+.br
+.B #include <string.h>
+.sp
+.BI "char *strndup(const char *" s ", size_t " n );
+.br
+.BI "char *strdupa(const char *" s );
+.br
+.BI "char *strndupa(const char *" s ", size_t " n );
+.sp
+.fi
+.SH DESCRIPTION
+The \fBstrdup()\fP function returns a pointer to a new string which
+is a duplicate of the string \fIs\fP. Memory for the new string is
+obtained with \fBmalloc\fP(3), and can be freed with \fBfree\fP(3).
+
+The \fBstrndup()\fP function is similar, but only copies at most
+\fIn\fP characters. If \fIs\fP is longer than \fIn\fP, only \fIn\fP
+characters are copied, and a terminating NUL is added.
+
+\fBstrdupa\fP and \fBstrndupa\fP are similar, but use \fBalloca(3)\fP
+to allocate the buffer. They are only available when using the GNU
+GCC suite, and suffer from the same limitations described in \fBalloca(3)\fP.
+
+.SH "RETURN VALUE"
+The \fBstrdup()\fP function returns a pointer to the duplicated
+string, or NULL if insufficient memory was available.
+.SH ERRORS
+.TP
+.B ENOMEM
+Insufficient memory available to allocate duplicate string.
+.SH "CONFORMING TO"
+.\" 4.3BSD-Reno, not (first) BSD 4.3.
+SVID 3, BSD 4.3.
+\fBstrndup()\fP, \fBstrdupa()\fP, and \fBstrndupa()\fP are GNU extensions.
+.SH "SEE ALSO"
+.BR alloca (3),
+.BR calloc (3),
+.BR free (3),
+.BR malloc (3),
+.BR realloc (3)