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