_getdcwd, _wgetdcwd
direct.h:インデックス への移動
ヘッダーファイル
direct.h
カテゴリ
ディレクトリ制御ルーチン
プロトタイプ
char * _getdcwd(int drive, char *buffer, int buflen);
wchar_t * _wgetdcwd(int drive, wchar_t *buffer, int buflen);
説明
指定されたドライブの現在のディレクトリを取得します。
_getdcwd は,指定されたドライブの作業ディレクトリの絶対パス名(ドライブ名を含む)を buflen バイト長まで取得し,それを buffer に格納します。絶対パス名の長さ(ヌルターミネータを含む)が buflen より長い場合は,エラーになります。デフォルトのドライブの場合,drive は 0 です。以下,A は 1,B は 2 のようになります。
作業ディレクトリがルートディレクトリの場合,絶対パスの最後の文字は円記号(\)です。作業ディレクトリがサブディレクトリの場合,サブディレクトリ名の最後に円記号は付きません。
buffer が NULL の場合,_getdcwd は,buflen バイト長以上のバッファを割り当てます。割り当てられたバッファを後で解放するには,_getdcwd の戻り値を free 関数に渡します。
戻り値
成功した場合,_getdcwd は,指定されたドライブの現在のディレクトリを格納するバッファを指すポインタを返します。
そうでない場合は,NULL を返し,グローバル変数 errno に次のいずれかの値を設定します。
ENOMEM |
バッファに割り当てるメモリが不足している(buffer は NULL) |
ERANGE |
ディレクトリ名が buflen より長い(buffer は NULL 以外) |
例
#include <direct.h>
#include <stdio.h>
char buf[65];
void main()
{
if (_getdcwd(3, buf, sizeof(buf)) == NULL)
perror("Unable to get current directory of drive C");
else
printf("Current directory of drive C is %s\n",buf);
}
移植性
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
_getdcwd |
+ |
|||
_wgetdcwd |
NT のみ |