_getcwd -- Get Path Name of Current Directory

Format

#include <direct.h>
char *_getcwd(char *pathbuf, int n);

Language Level: Extension
_getcwd gets the full path name of the current working directory and stores it in the buffer pointed to by pathbuf. The integer argument n specifies the maximum length for the path name. An error occurs if the length of the path name, including the terminating null character, exceeds n characters.

If the pathbuf argument is NULL, _getcwd uses malloc to reserve a buffer of at least n bytes to store the path name. If the current working directory string is more than n bytes, a large enough buffer will be allocated to contain the string. You can later free this buffer using the _getcwd return value as the argument to free.

Return Value
_getcwd returns pathbuf. If an error occurs, _getcwd returns NULL and sets errno to one of the following values:

Value Meaning
ENOMEM Not enough storage space available to reserve n bytes (when pathbuf is NULL).
ERANGE The path name is longer than n characters.
EOS2ERR A OS/2 on Windows system call failed. Use _doserrno to obtain more information about the return code.

Example
This example stores the name of the current working directory (up to _MAX_PATH characters) in a buffer. The value of _MAX_PATH is defined in <stdlib.h>.

#include <direct.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
   char buffer[_MAX_PATH];
   if (NULL == getcwd(buffer, _MAX_PATH))
      perror("getcwd error");
   printf("The current directory is %s\n", buffer);
   return 0;
   /***********************************************
      The output should be similar to:
      The current directory is E:\MIG_XMPS
   ***********************************************/
}



chdir -- Change Current Working Directory
_fullpath -- Get Full Path Name of Partial Path
_getdcwd -- Get Full Path Name of Current Directory
_getdrive -- Get Current Working Drive
malloc -- Reserve Storage Block
<direct.h>
<stdlib.h>