Quick ?s
Cheat Sheets
Man Pages
The Lynx
Software
GETCWD(3)		   Linux Programmers Manual		    GETCWD(3)



NAME
       getcwd, getwd, get_current_dir_name - Get current working directory

SYNOPSIS
       #include 

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

       char *getwd(char *buf);

       char *get_current_dir_name(void);

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       getcwd(): _BSD_SOURCE || _XOPEN_SOURCE >= 500
       get_current_dir_name(): _GNU_SOURCE

DESCRIPTION
       The  getcwd() function copies an absolute pathname of the current work
       ing directory to the array pointed to by buf, which is of length  size.

       If  the	current  absolute  pathname would require a buffer longer than
       size elements, NULL is returned, and errno is set to ERANGE; an	appli
       cation  should  check  for  this error, and allocate a larger buffer if
       necessary.

       If buf is NULL, the behavior of getcwd() is undefined.

       As an extension to the  POSIX.1-2001  standard,	Linux  (libc4,	libc5,
       glibc) getcwd() allocates the buffer dynamically using malloc(3) if buf
       is NULL on call.  In this case, the allocated  buffer  has  the	length
       size  unless  size  is zero, when buf is allocated as big as necessary.
       It is possible (and, indeed, advisable) to free(3) the buffers if  they
       have been obtained this way.

       get_current_dir_name(),	will malloc(3) an array big enough to hold the
       current directory name.	If the environment variable PWD  is  set,  and
       its value is correct, then that value will be returned.

       getwd(),  does  not malloc(3) any memory.  The buf argument should be a
       pointer to an array at least PATH_MAX bytes long.   getwd()  does  only
       return  the  first  PATH_MAX  bytes  of the actual pathname.  Note that
       PATH_MAX need not be a compile-time constant; it may depend on the file
       system  and  may  even be unlimited.  For portability and security rea
       sons, use of getwd() is deprecated.

RETURN VALUE
       NULL on failure with errno set accordingly, and buf  on	success.   The
       contents of the array pointed to by buf is undefined on error.

ERRORS
       EACCES Permission  to  read  or	search a component of the filename was
	      denied.

       EFAULT buf points to a bad address.

       EINVAL The size argument is zero and buf is not a null pointer.

       ENOENT The current working directory has been unlinked.

       ERANGE The size argument is less than the length of the working	direc
	      tory name.  You need to allocate a bigger array and try again.

CONFORMING TO
       getcwd() conforms to POSIX.1-2001.  getwd() is present in POSIX.1-2001,
       but marked LEGACY.  get_current_dir_name() is a GNU extension.

NOTES
       Under Linux, the function getcwd() is a system call (since 2.1.92).  On
       older  systems  it would query /proc/self/cwd.  If both system call and
       proc file system are missing, a generic implementation is called.  Only
       in that case can these calls fail under Linux with EACCES.

       These  functions  are  often  used  to save the location of the current
       working directory for the purpose of returning to  it  later.   Opening
       the  current directory (".") and calling fchdir(2) to return is usually
       a faster and more reliable  alternative	when  sufficiently  many  file
       descriptors are available, especially on platforms other than Linux.

SEE ALSO
       chdir(2), fchdir(2), open(2), unlink(2), free(3), malloc(3)

COLOPHON
       This  page  is  part of release 3.05 of the Linux man-pages project.  A
       description of the project, and information about reporting  bugs,  can
       be found at http://www.kernel.org/doc/man-pages/.



GNU				  2007-07-26			     GETCWD(3)




Yals.net is © 1999-2009 Crescendo Communications
Sharing tech info on the web for more than a decade!
This page was generated Thu Apr 30 17:05:23 2009