GETCWD(3)                      Library Routines                      GETCWD(3)




NAME

       getcwd, getwd - get working directory pathname


SYNOPSIS

       #include <unistd.h>

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


DESCRIPTION

       The getcwd function copies the absolute pathname of the current working
       directory (GS/OS prefix 0 if not NULL, otherwise GS/OS prefix  8)  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 released by free(3).

       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 make use of the _mapPath(3) facility.


RETURN VALUES

       Upon successful completion, a pointer  to  the  pathname  is  returned.
       Otherwise  a  NULL pointer is returned and the global variable errno is
       set to indicate the error.  In addition, getwd copies the error message
       associated with errno into the memory referenced by buf.


COMPATIBILITY

       These routines are thread safe.


ERRORS

       The getcwd function will fail if:

              EACCESS
                     Read  or  search permission was denied for a component of
                     the pathname.

              EINVAL The size argument is zero, or if pathname mapping is  ac‐
                     tive  and  the  current working directory has a component
                     which includes the  slash  ('/')  character.   See  _map
                     Path(3).

              ENOENT A component of the pathname no longer exists.

              ENOMEM Insufficient memory is available.

              ERANGE The  size  argument is greater than zero but smaller than
                     the length of the pathname plus 1.


BUGS

       The getwd function does not do sufficient error  checking  and  is  not
       able to return very long, but valid, paths.  It is provided for compat‐
       ibility and should be avoided when possible.


STANDARDS

       The getcwd function conforms to ANSI C.  The ability to specify a  NULL
       pointer and have getcwd allocate memory as necessary is an extension.


HISTORY

       The getwd function appeared in BSD 4.0.


SEE ALSO

       chdir(2), fchdir(2), _mapPath(3), malloc(3), strerror(3)



GNO                            18 December 1996                      GETCWD(3)

Man(1) output converted with man2html