The
getcwd ();
function copies the absolute pathname of the current working directory
into the memory referenced by
Fa buf
and returns a pointer to
Fa buf .
The
Fa size
argument is the size, in bytes, of the array referenced by
Fa buf .
If
Fa buf
is
NULL
space is allocated as necessary to store the pathname.
This space may later be
free(3)Ns'd.
The function
getwd ();
is a compatibility routine which calls
getcwd ();
with its
Fa buf
argument and a size of
MAXPATHLEN
(as defined in the include
file
In sys/param.h ) .
Obviously,
Fa buf
should be at least
MAXPATHLEN
bytes in length.
These routines have traditionally been used by programs to save the
name of a working directory for the purpose of returning to it.
A much faster and less error-prone method of accomplishing this is to
open the current directory
(`.'
)
and use the
fchdir(2)
function to return.
RETURN VALUES
Upon successful completion, a pointer to the pathname is returned.
Otherwise a
NULL
pointer is returned and the global variable
errno
is set to indicate the error.
In addition,
getwd ();
copies the error message associated with
errno
into the memory referenced by
Fa buf .
ERRORS
The
getcwd ();
function
will fail if:
Bq Er EACCES
Read or search permission was denied for a component of the pathname.
Bq Er EINVAL
The
Fa size
argument is zero.
Bq Er ENOENT
A component of the pathname no longer exists.
Bq Er ENOMEM
Insufficient memory is available.
Bq Er ERANGE
The
Fa size
argument is greater than zero but smaller than the length of the pathname
plus 1.
The
getcwd ();
function
conforms to
St -p1003.1-90 .
The ability to specify a
NULL
pointer and have
getcwd ();
allocate memory as necessary is an extension.
HISTORY
The
getwd ();
function appeared in
BSD 4.0
BUGS
The
getwd ();
function
does not do sufficient error checking and is not able to return very
long, but valid, paths.
It is provided for compatibility.