getcwd()は、カレントディレクトリ(current working directory)を取得します。
#include <unistd.h>
char *getcwd(char *buf, size_t size);
bufにはディレクトリパスを保存するバッファのアドレスを指定します。NULLも指定可能です。sizeにはバッファの長さを指定します。
getcwd()は、成功したときは取得した絶対パスのポインタを返し、エラーが発生したときはNULLを返します。
MicrosoftのC/C++コンパイラでは、direct.hで宣言されている_getcwd()を使います。
次の例はカレントディレクトリを調べて表示するプログラムの例です。
#include <stdio.h>
#ifdef _MSC_VER
#include <direct.h>
#else
#include <unistd.h>
#endif
#ifdef _MSC_VER
#pragma warning(disable : 6031)
#pragma warning(disable : 6054)
#endif
#define BUFFSIZE 1024
int main(int argc, char* argv[])
{
char buff[BUFFSIZE] = "";
#ifdef _MSC_VER
_getcwd(buff, BUFFSIZE);
#else
getcwd(buff, BUFFSIZE);
#endif
puts(buff);
return 0;
}