getcwd(3C) getcwd(3C) NAME getcwd - get pathname of current working directory SYNOPSIS #include <unistd.h> char *getcwd (char *buf, size_t size); DESCRIPTION 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. 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); } SEE ALSO malloc(3C). DIAGNOSTICS Returns NULL with errno set if size is not large enough, or if an error occurs in a lower-level function. NOTES 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. Page 2