_getdcwd、_wgetdcwd
指定されたドライブの現在の作業ディレクトリの完全パスを取得します。
重要 |
---|
この API は、Windows のランタイムで実行するアプリケーションで使用することはできません。詳細については、でサポート /ZW CRT 関数" "を参照してください。 |
char *_getdcwd(
int drive,
char *buffer,
int maxlen
);
wchar_t *_wgetdcwd(
int drive,
wchar_t *buffer,
int maxlen
);
パラメーター
drive
ドライブ (0 = 既定のドライブ、1 = 2 = 12 A、B など) を指定する正の整数。指定されたドライブを使用できない場合、またはドライブの種類 (、CD-ROM、RAM、ディスクやネットワーク ドライブ修正削除可能) 特定できない場合、パラメーターの検証で説明した無効なパラメーター ハンドラーが呼び出されます。
buffer
パスの格納場所、または NULL。NULL が指定されている場合、この関数は mallocを使用して、少なくとも maxlen のサイズのバッファーを割り当てて、_getdcwd の戻り値が割り当てられるバッファーへのポインターです。バッファーは free を呼び出し、ポインターを渡すことによって解放できます。
maxlen
パスの最大長を指定する文字の正の整数以外の値の場合: _getdcwd の char と _wgetdcwdの wchar_t。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との両方を呼び出すと、スレッド セーフに違反することもできます。詳細については、に MSDN ライブラリ 移動し、次に GetFullPathNameを検索します。
_nolock のサフィックスはすべて同じにするこの関数であるが、そのスレッド セーフでないため、他のスレッドによって干渉から保護されません。この関数の各バージョンは詳細については、「_getdcwd_nolock、_wgetdcwd_nolock」を参照してください。
_DEBUG と _CRTDBG_MAP_ALLOC が定義されている場合、そのメモリ割り当てをデバッグできるように _getdcwd の呼び出しと _wgetdcwd は _getdcwd_dbg と _wgetdcwd_dbg の呼び出しに置き換えられます。詳細については、「_getdcwd_dbg、_wgetdcwd_dbg」を参照してください。
汎用テキスト ルーチンのマップ
Tchar.h のルーチン |
_UNICODE および _MBCS が未定義の場合 |
_MBCS が定義されている場合 |
_UNICODE が定義されている場合 |
---|---|---|---|
_tgetdcwd |
_getdcwd |
_getdcwd |
_wgetdcwd |
必要条件
ルーチン |
必須ヘッダー |
---|---|
_getdcwd |
<direct.h> |
_wgetdcwd |
<direct.h> か <wchar.h> |
互換性の詳細については、互換性を参照してください。
使用例
_getdrive の例を参照してください。
同等の .NET Framework 関数
System::Environment::CurrentDirectory