getcwd(3C) getcwd(3C)
getcwd - get pathname of current working directory
#include <unistd.h>
char *getcwd (char *buf, size_t size);
getcwd 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.
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 ALSO
malloc(3C).
Returns NULL with errno set if size is not large enough, or if an error
occurs in a lower-level function.
getcwd 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.
PPPPaaaaggggeeee 2222 [ Back ]
|