[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    getcwd(3C) manual page Table of Contents

Name

getcwd - get pathname of current working directory

Synopsis

#include <unistd.h>

extern char *getcwd(char *buf, size_t size);

MT-Level

Safe

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, the pointer returned by getcwd() may be used as the argument in a subsequent call to free().

Return Values

getcwd() returns NULL with errno set if size is not large enough, or if an error occurs in a lower-level function.

Errors

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 greater than 0 and 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);
    return(0);
}

See Also

chdir(2) , malloc(3C)

Notes

Using chdir(2) in conjunction with getcwd can give unpredictable results.


Table of Contents