Loading...
stdlib/realpath.3 /dev/null Libc-763.13
--- /dev/null
+++ Libc/Libc-763.13/stdlib/realpath.3
@@ -0,0 +1,150 @@
+.\" Copyright (c) 1994
+.\"	The Regents of the University of California.  All rights reserved.
+.\"
+.\" This code is derived from software contributed to Berkeley by
+.\" Jan-Simon Pendry.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"    notice, this list of conditions and the following disclaimer in the
+.\"    documentation and/or other materials provided with the distribution.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\"    may be used to endorse or promote products derived from this software
+.\"    without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\"     @(#)realpath.3	8.2 (Berkeley) 2/16/94
+.\" $FreeBSD: src/lib/libc/stdlib/realpath.3,v 1.14 2007/01/09 00:28:10 imp Exp $
+.\"
+.Dd April 5, 2008
+.Dt REALPATH 3
+.Os
+.Sh NAME
+.Nm realpath
+.Nd returns the canonicalized absolute pathname
+.\" .Sh LIBRARY
+.\" .Lb libc
+.Sh SYNOPSIS
+.In stdlib.h
+.Ft "char *"
+.Fo realpath
+.Fa "const char *restrict file_name"
+.Fa "char *restrict resolved_name"
+.Fc
+.Sh DESCRIPTION
+The
+.Fn realpath
+function resolves all symbolic links, extra
+.Dq /
+characters, and references to
+.Pa /./
+and
+.Pa /../
+in
+.Fa file_name .
+If the
+.Fa resolved_name
+argument
+is non-NULL, the resulting absolute pathname is copied there (it
+.Em must
+refer to a buffer capable of storing at least
+.Dv PATH_MAX
+characters).
+.Pp
+As a permitted extension to the standard, if
+.Fa resolved_name
+is NULL, 
+memory is allocated for the resulting absolute pathname, and is returned by
+.Fn realpath .
+This memory should be freed by a call to
+.Xr free 3
+when no longer needed.
+.Pp
+The
+.Fn realpath
+function will resolve both absolute and relative paths
+and return the absolute pathname corresponding to
+.Fa file_name .
+All components of
+.Fa file_name
+must exist when
+.Fn realpath
+is called.
+.Sh "RETURN VALUES"
+On success, the
+.Fn realpath
+function returns the address of the resulting absolute pathname, which is
+.Fa resolved_name
+if it was non-NULL, or the address of newly allocated memory.
+If an error occurs,
+.Fn realpath
+returns
+.Dv NULL .
+If
+.Fa resolved_name
+was non-NULL, it will
+contains the pathname which caused the problem.
+.Sh ERRORS
+The function
+.Fn realpath
+may fail and set the external variable
+.Va errno
+for any of the errors specified for the library functions
+.Xr alloca 3 ,
+.Xr getattrlist 2 ,
+.Xr getcwd 3 ,
+.Xr lstat 2 ,
+.Xr readlink 2 ,
+.Xr stat 2 ,
+and
+.Xr strdup 3 .
+.\" .Sh CAVEATS
+.\" This implementation of
+.\" .Fn realpath
+.\" differs slightly from the Solaris implementation.
+.\" The
+.\" .Bx 4.4
+.\" version always returns absolute pathnames,
+.\" whereas the Solaris implementation will,
+.\" under certain circumstances, return a relative
+.\" .Fa resolved_name
+.\" when given a relative
+.\" .Fa file_name .
+.Sh LEGACY SYNOPSIS
+.Fd #include <sys/param.h>
+.Fd #include <stdlib.h>
+.Pp
+The include file
+.In sys/param.h
+is necessary.
+.Sh LEGACY DESCRIPTION
+In legacy mode,
+the last component of
+.Fa file_name
+does not need to exist when
+.Fn realpath
+is called.
+.Sh "SEE ALSO"
+.Xr free 3 ,
+.Xr getcwd 3 ,
+.Xr compat 5
+.Sh HISTORY
+The
+.Fn realpath
+function first appeared in
+.Bx 4.4 .