次の方法で共有


_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 では _getdcwdwchar_t では _wgetdcwd

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

戻り値

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

bufferNULLとして指定されており、maxlen文字を割り当てるのに十分なメモリがない場合は、エラーが発生し、errnoENOMEMに設定されます。 終端の null 文字を含むパスの長さが maxlenを超えると、エラーが発生し、 errnoERANGEに設定されます。 これらのエラー コードについて詳しくは、「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