getcwd,_wgetcwd
dir.h:インデックス への移動
ヘッダーファイル
dir.h
カテゴリ
ディレクトリ制御ルーチン
プロトタイプ
char *getcwd(char *buf, int buflen);
wchar_t *_wgetcwd(wchar_t *buf, int buflen);
説明
現在の作業ディレクトリを取得します。
getcwd は,現在の作業ディレクトリの絶対パス名(ドライブを含む)を buflen バイト長まで取得し,それを buf に格納します。絶対パス名の長さ(ヌルターミネータを含む)が buflen バイトより長い場合は,エラーになります。
buf が NULL の場合,malloc を使って buflen バイト長のバッファが割り当てられます。割り当てられたバッファを後で解放するには,getcwd の戻り値を関数 free に渡します。
戻り値
- getcwd は次の値を返します。
- 入力時の buf が NULL でない場合,getcwd は,成功すると buf を返し,エラーになると NULL を返します。
- 入力時の buf が NULL の場合,getcwd は,割り当てられたバッファを指すポインタを返します。
エラーの場合は,グローバル変数 errno に次のいずれかの値が設定されます。
ENODEV |
指定された装置がない |
ENOMEM |
バッファに割り当てるメモリが不足している(buf は NULL) |
ERANGE |
ディレクトリ名が buflen より長い(buf は NULL 以外) |
例
#include <stdio.h>
#include <dir.h>
int main(void)
{
char buffer[MAXPATH];
getcwd(buffer, MAXPATH);
printf("The current directory is: %s\n", buffer);
return 0;
}
移植性
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
getcwd |
+ |
+ |
||
_wgetcwd |
NT のみ |