How to get the current directory in a C program? How to get the current directory in a C program? unix unix

How to get the current directory in a C program?


Have you had a look at getcwd()?

#include <unistd.h>char *getcwd(char *buf, size_t size);

Simple example:

#include <unistd.h>#include <stdio.h>#include <limits.h>int main() {   char cwd[PATH_MAX];   if (getcwd(cwd, sizeof(cwd)) != NULL) {       printf("Current working dir: %s\n", cwd);   } else {       perror("getcwd() error");       return 1;   }   return 0;}


Look up the man page for getcwd.


Although the question is tagged Unix, people also get to visit it when their target platform is Windows, and the answer for Windows is the GetCurrentDirectory() function:

DWORD WINAPI GetCurrentDirectory(  _In_  DWORD  nBufferLength,  _Out_ LPTSTR lpBuffer);

These answers apply to both C and C++ code.

Link suggested by user4581301 in a comment to another question, and verified as the current top choice with a Google search 'site:microsoft.com getcurrentdirectory'.