The
getcwd() function copies the absolute pathname of the current working directory into the memory referenced by
buf and returns a pointer to
buf. The
size argument is the size, in bytes, of the array referenced by
buf.
If
buf is
NULL, space is allocated as necessary to store the pathname. This space may later be
free(3)'d.
The function
getwd() is a compatibility routine which calls
getcwd() with its
buf argument and a size of
MAXPATHLEN (as defined in the include file
<sys/param.h>). Obviously,
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.