_getdcwd
, _wgetdcwd
指定されたドライブの現在の作業ディレクトリの完全なパスを取得します。
構文
char *_getdcwd(
int drive,
char *buffer,
int maxlen
);
wchar_t *_wgetdcwd(
int drive,
wchar_t *buffer,
int maxlen
);
パラメーター
drive
ドライブを指定する負でない整数 (0 = 既定のドライブ、1 = A、2 = B など)。
指定したドライブが使用できない場合は、無効なパラメーター ハンドラーが呼び出されます。 また、ドライブの種類 (リムーバブル、固定、CD-ROM、RAM ディスク、ネットワーク ドライブなど) を特定できない場合にも呼び出されます。 詳細については、「 パラメーターの検証」を参照してください。
buffer
パスの保存場所、または NULL
。
NULL
を指定した場合、この関数はmalloc
を使用して少なくともmaxlen
サイズのバッファーを割り当て、_getdcwd
の戻り値は割り当てられたバッファーへのポインターです。 バッファーは、 free
を呼び出し、ポインターに渡すことによって解放できます。
maxlen
文字数でパスの最大長を指定する 0 以外の正の整数。 char
では _getdcwd
、 wchar_t
では _wgetdcwd
。
maxlen
が 0 以下の場合は、無効なパラメーター ハンドラーが呼び出されます。 詳細については、「 パラメーターの検証」を参照してください。
戻り値
指定されたドライブの現在の作業ディレクトリの完全なパスを表す文字列へのポインター、またはエラーを示す NULL
。
buffer
がNULL
として指定されており、maxlen
文字を割り当てるのに十分なメモリがない場合は、エラーが発生し、errno
がENOMEM
に設定されます。 終端の null 文字を含むパスの長さが maxlen
を超えると、エラーが発生し、 errno
が ERANGE
に設定されます。 これらのエラー コードについて詳しくは、「errno
、_doserrno
、_sys_errlist
、および _sys_nerr
」を参照してください。
解説
_getdcwd
関数は、指定されたドライブの現在の作業ディレクトリの完全なパスを取得し、それを buffer
に格納します。 現在の作業ディレクトリがルートに設定されている場合、文字列は円記号 (\) で終わります。 現在の作業ディレクトリがルート以外のディレクトリに設定されている場合、文字列は、円記号ではなく、ディレクトリの名前で終わります。
_wgetdcwd
は、 _getdcwd
のワイド文字バージョンで、その buffer
パラメーターと戻り値はワイド文字列になります。 それ以外では、 _wgetdcwd
と _getdcwd
の動作は同じです。
この関数は、それ自体がスレッド セーフではない GetFullPathName
に依存している場合でも、スレッド セーフです。 ただし、マルチスレッド アプリケーションがこの関数と GetFullPathName
の両方を呼び出す場合は、スレッド セーフに違反する可能性があります。
_nolock
サフィックスを持つこの関数のバージョンは、スレッド セーフではなく、他のスレッドによる干渉から保護されていないことを除き、この関数と同じように動作します。 詳細については、「 _getdcwd_nolock
」と「 _wgetdcwd_nolock
の両方を管理できます。
_DEBUG
と_CRTDBG_MAP_ALLOC
が定義されている場合、_getdcwd
と_wgetdcwd
の呼び出しは、メモリ割り当てをデバッグできるように、_getdcwd_dbg
と_wgetdcwd_dbg
の呼び出しに置き換えられます。 詳細については、「_getdcwd_dbg
、 _wgetdcwd_dbg
」を参照してください。
既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。
汎用テキスト ルーチンのマップ
Tchar.h のルーチン | _UNICODE と _MBCS が定義されていない |
_MBCS が定義されている |
_UNICODE が定義されている |
---|---|---|---|
_tgetdcwd |
_getdcwd |
_getdcwd |
_wgetdcwd |
要件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
_getdcwd |
<direct.h> |
_wgetdcwd |
<direct.h> または <wchar.h> |
互換性の詳細については、「 Compatibility」を参照してください。
例
「_getdrive
」の例を参照してください。
関連項目
ディレクトリ コントロール
_chdir
, _wchdir
_getcwd
, _wgetcwd
_getdrive
_mkdir
, _wmkdir
_rmdir
, _wrmdir