_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
では _getdcwd
、 wchar_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
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示