]> git.saurik.com Git - apple/libc.git/blame - string/FreeBSD/strdup.3
Libc-1082.20.4.tar.gz
[apple/libc.git] / string / FreeBSD / strdup.3
CommitLineData
5b2abdfb 1.\" Copyright (c) 1990, 1991, 1993
e9ce8d39
A
2.\" The Regents of the University of California. All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\" notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\" notice, this list of conditions and the following disclaimer in the
11.\" documentation and/or other materials provided with the distribution.
e9ce8d39
A
12.\" 4. Neither the name of the University nor the names of its contributors
13.\" may be used to endorse or promote products derived from this software
14.\" without specific prior written permission.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26.\" SUCH DAMAGE.
27.\"
5b2abdfb 28.\" @(#)strdup.3 8.1 (Berkeley) 6/9/93
1f2f436a 29.\" $FreeBSD: src/lib/libc/string/strdup.3,v 1.15 2009/04/07 13:42:53 trasz Exp $
e9ce8d39 30.\"
1f2f436a 31.Dd December 5, 2008
5b2abdfb 32.Dt STRDUP 3
e9ce8d39
A
33.Os
34.Sh NAME
1f2f436a
A
35.Nm strdup ,
36.Nm strndup
5b2abdfb 37.Nd save a copy of a string
e9ce8d39
A
38.Sh LIBRARY
39.Lb libc
40.Sh SYNOPSIS
5b2abdfb
A
41.In string.h
42.Ft char *
ad3c9f2a
A
43.Fo strdup
44.Fa "const char *s1"
45.Fc
1f2f436a 46.Ft char *
ad3c9f2a
A
47.Fo strndup
48.Fa "const char *s1"
49.Fa "size_t n"
50.Fc
e9ce8d39
A
51.Sh DESCRIPTION
52The
5b2abdfb
A
53.Fn strdup
54function
55allocates sufficient memory for a copy
56of the string
ad3c9f2a 57.Fa s1 ,
5b2abdfb
A
58does the copy, and returns a pointer to it.
59The pointer may subsequently be used as an
60argument to the function
61.Xr free 3 .
62.Pp
63If insufficient memory is available, NULL is returned and
64.Va errno
65is set to
66.Er ENOMEM .
1f2f436a
A
67.Pp
68The
69.Fn strndup
70function copies at most
ad3c9f2a 71.Fa n
1f2f436a 72characters from the string
ad3c9f2a 73.Fa s1
1f2f436a
A
74always
75.Dv NUL
76terminating the copied string.
e9ce8d39 77.Sh SEE ALSO
5b2abdfb 78.Xr free 3 ,
ad3c9f2a 79.Xr malloc 3
e9ce8d39
A
80.Sh HISTORY
81The
5b2abdfb 82.Fn strdup
e9ce8d39
A
83function first appeared in
84.Bx 4.4 .
1f2f436a
A
85The
86.Fn strndup
87function was added in
88.Fx 7.2 .