_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 、この関数は、少なくとも maxlen サイズのバッファーを使用して malloc割り当て、戻り値 _getdcwd は割り当てられたバッファーへのポインターです。 バッファーは、 free を呼び出し、ポインターに渡すことによって解放できます。

maxlen
文字数でパスの最大長を指定する 0 以外の正の整数。 char では _getdcwdwchar_t では _wgetdcwd

0 以下の場合 maxlen は、無効なパラメーター ハンドラーが呼び出されます。 詳細については、「パラメーターの検証」を参照してください

戻り値

指定されたドライブの現在の作業ディレクトリの完全なパスを表す文字列へのポインター、またはエラーを示す NULL

文字をNULL割り当てるためmaxlenのメモリが不足している場合bufferは、エラーが発生し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の両方を管理できます。

_CRTDBG_MAP_ALLOC定義されている場合_DEBUG、メモリ割り当てをデバッグできるように、呼び出_getdcwd_wgetdcwdに対する_getdcwd_dbg呼び出しと呼び出しが呼び出しに_wgetdcwd_dbg置き換えられます。 詳細については、次を参照してください_wgetdcwd_dbg_getdcwd_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