getcwd(3C)getcwd(3C)NAMEgetcwd - get pathname of current working directory
SYNOPSIS
#include <unistd.h>
char *getcwd (char *buf, size_t size);
DESCRIPTIONgetcwd returns a pointer to the current directory pathname. The value of
size must be at least one greater than the length of the pathname to be
returned.
If buf is not NULL, the pathname will be stored in the space pointed to
by buf.
If buf is a NULL pointer, getcwd will obtain size bytes of space using
malloc(3C). In this case, a subsequent call to free should be made using
the pointer returned by getcwd as the argument. If size is less than
zero, then getcwd will obtain an appropriate amount of space. Passing a
negative size and a non-NULL buf argument will lead to undefined results.
getcwd will fail if one or more of the following are true:
EACCES A parent directory cannot be read to get its name.
EINVAL size is equal to 0.
ERANGE size is less than the length of the pathname plus 1.
EXAMPLE
Here is a program that prints the current working directory.
#include <unistd.h>
#include <stdio.h>
main()
{
char *cwd;
if ((cwd = getcwd(NULL, 64)) == NULL)
{
perror("pwd");
exit(2);
}
(void)printf("%s\n", cwd);
free(cwd);
return(0);
}
Page 1
getcwd(3C)getcwd(3C)SEE ALSOmalloc(3C).
DIAGNOSTICS
Returns NULL with errno set if size is not large enough, or if an error
occurs in a lower-level function.
NOTESgetcwd uses the end part of the buffer ( buf + size - 1) as temporary
space. Be sure that the size argument accurately reflects the space
allocated to the buffer.
Page 2