]> git.saurik.com Git - apple/libc.git/blob - stdlib/realpath.3
Libc-498.tar.gz
[apple/libc.git] / stdlib / realpath.3
1 .\" Copyright (c) 1994
2 .\" The Regents of the University of California. All rights reserved.
3 .\"
4 .\" This code is derived from software contributed to Berkeley by
5 .\" Jan-Simon Pendry.
6 .\"
7 .\" Redistribution and use in source and binary forms, with or without
8 .\" modification, are permitted provided that the following conditions
9 .\" are met:
10 .\" 1. Redistributions of source code must retain the above copyright
11 .\" notice, this list of conditions and the following disclaimer.
12 .\" 2. Redistributions in binary form must reproduce the above copyright
13 .\" notice, this list of conditions and the following disclaimer in the
14 .\" documentation and/or other materials provided with the distribution.
15 .\" 3. All advertising materials mentioning features or use of this software
16 .\" must display the following acknowledgement:
17 .\" This product includes software developed by the University of
18 .\" California, Berkeley and its contributors.
19 .\" 4. Neither the name of the University nor the names of its contributors
20 .\" may be used to endorse or promote products derived from this software
21 .\" without specific prior written permission.
22 .\"
23 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 .\" SUCH DAMAGE.
34 .\"
35 .\" @(#)realpath.3 8.2 (Berkeley) 2/16/94
36 .\" $FreeBSD: src/lib/libc/stdlib/realpath.3,v 1.13 2003/03/27 20:48:53 fjoe Exp $
37 .\"
38 .Dd February 16, 1994
39 .Dt REALPATH 3
40 .Os
41 .Sh NAME
42 .Nm realpath
43 .Nd returns the canonicalized absolute pathname
44 .Sh LIBRARY
45 .Lb libc
46 .Sh SYNOPSIS
47 .In stdlib.h
48 .Ft "char *"
49 .Fo realpath
50 .Fa "const char *restrict file_name"
51 .Fa "char *restrict resolved_name"
52 .Fc
53 .Sh DESCRIPTION
54 The
55 .Fn realpath
56 function resolves all symbolic links, extra
57 .Dq /
58 characters, and references to
59 .Pa /./
60 and
61 .Pa /../
62 in
63 .Fa file_name ,
64 and copies the resulting absolute pathname into
65 the memory referenced by
66 .Fa resolved_name .
67 The
68 .Fa resolved_name
69 argument
70 .Em must
71 refer to a buffer capable of storing at least
72 .Dv PATH_MAX
73 characters.
74 .Pp
75 The
76 .Fn realpath
77 function will resolve both absolute and relative paths
78 and return the absolute pathname corresponding to
79 .Fa file_name .
80 All components of
81 .Fa file_name
82 must exist when
83 .Fn realpath
84 is called.
85 .Sh "RETURN VALUES"
86 The
87 .Fn realpath
88 function returns
89 .Fa resolved_name
90 on success.
91 If an error occurs,
92 .Fn realpath
93 returns
94 .Dv NULL
95 and
96 .Fa resolved_name
97 contains the pathname which caused the problem.
98 .Sh ERRORS
99 The function
100 .Fn realpath
101 may fail and set the external variable
102 .Va errno
103 for any of the errors specified for the library functions
104 .Xr lstat 2 ,
105 .Xr readlink 2 ,
106 and
107 .Xr getcwd 3 .
108 .Sh CAVEATS
109 This implementation of
110 .Fn realpath
111 differs slightly from the Solaris implementation.
112 The
113 .Bx 4.4
114 version always returns absolute pathnames,
115 whereas the Solaris implementation will,
116 under certain circumstances, return a relative
117 .Fa resolved_name
118 when given a relative
119 .Fa file_name .
120 .Sh LEGACY SYNOPSIS
121 .Fd #include <sys/param.h>
122 .Fd #include <stdlib.h>
123 .Pp
124 The include file
125 .In sys/param.h
126 is necessary.
127 .Sh LEGACY DESCRIPTION
128 In legacy mode,
129 the last component of
130 .Fa file_name
131 does not need to exist when
132 .Fn realpath
133 is called.
134 .Sh "SEE ALSO"
135 .Xr getcwd 3 ,
136 .Xr compat 5
137 .Sh HISTORY
138 The
139 .Fn realpath
140 function first appeared in
141 .Bx 4.4 .