GETCWD
Section: Linux Programmer's Manual (2)
Updated: 2003-03-28
Index
Return to Main Contents
NAME
getcwd - get current working directory
SYNOPSIS
/*
* This page documents the getcwd(2) system call, which
* is not defined in any user-space header files; you should
* use getcwd(3) defined in <unistd.h> instead in applications.
*/
long getcwd(char *buf, unsigned long size);
DESCRIPTION
The
getcwd()
function copies an absolute pathname of the
current working directory to the array pointed to by
buf,
which is of length
size.
If the current absolute path name would require a buffer
longer than
size
elements,
-1
is returned, and
errno
is
set to
ERANGE;
an application should check for this error,
and allocate a larger buffer if necessary.
If
buf
is NULL, the behaviour of
getcwd()
is undefined.
RETURN VALUE
-1
on failure (for example, if the current directory is not readable), with
errno
set accordingly, and the number of characters stored in
buf
on success. The contents of the array pointed to by
buf
is undefined on error.
Note that this return value differs from the
getcwd(3)
library function, which returns
NULL
on failure and the address of
buf
on success.
ERRORS
- ENOMEM
-
if user memory cannot be mapped
- ENOENT
-
if directory does not exist (i.e. it has been deleted)
- ERANGE
-
if not enough space available for storing the path
- EFAULT
-
if memory access violation occurs while copying
CONFORMING TO
The
getcwd
system call is Linux specific, use the
getcwd
C library function for portability.
SEE ALSO
getcwd(3)