_getdcwd_dbg、_wgetdcwd_dbg
更新 : 2007 年 11 月
_getdcwd、_wgetdcwd 関数のデバッグ バージョン (デバッグ中にだけ使用できます)。
char *_getdcwd_dbg(
int drive,
char *buffer,
int maxlen,
int blockType,
const char *filename,
int linenumber
);
wchar_t *_wgetdcwd_dbg(
int drive,
wchar_t *buffer,
int maxlen,
int blockType,
const char *filename,
int linenumber
);
パラメータ
drive
ディスク ドライブの名前。buffer
パスの格納場所。maxlen
パスの最大長 (文字数)。_getdcwd_dbg の場合は char、_wgetdcwd_dbg の場合は wchar_t です。blockType
要求するメモリ ブロックの種類 (_CLIENT_BLOCK または _NORMAL_BLOCK)。filename
割り当て操作を要求したソース ファイルの名前へのポインタ、または NULL。linenumber
割り当て操作を要求したソース ファイル内の行番号、または NULL。
戻り値
buffer へのポインタを返します。エラーが発生した場合は NULL を返します。また、errno は、maxlen バイトに割り当てるメモリが不十分であることを示す場合 (buffer として NULL 引数を指定した場合) は ENOMEM に設定され、maxlen で指定した文字数よりパスが長い場合は ERANGE に設定されます。詳細については、「errno、_doserrno、_sys_errlist、および _sys_nerr」を参照してください。
解説
_getdcwd_dbg 関数および _wgetdcwd_dbg 関数は、_getdcwd および _wgetdcwd と同じです。ただし、_DEBUG が定義されている場合は除きます。_DEBUG が定義されている場合、これらの関数は、NULL が buffer パラメータとして渡されると、デバッグ バージョンの malloc および _malloc_dbg を使用してメモリを割り当てます。詳細については、「_malloc_dbg」を参照してください。
ほとんどの場合は、これらの関数を明示的に呼び出す必要はありません。代わりに、_CRTDBG_MAP_ALLOC フラグを定義できます。_CRTDBG_MAP_ALLOC が定義されている場合、_getdcwd および _wgetdcwd の呼び出しはそれぞれ _getdcwd_dbg および _wgetdcwd_dbg に再び割り当てられます。このとき、blockType は _NORMAL_BLOCK に設定されます。したがって、ヒープ ブロックを _CLIENT_BLOCK としてマークする場合を除き、これらの関数を明示的に呼び出す必要はありません。詳細については、「デバッグ ヒープ上のメモリ ブロックの型」を参照してください。
汎用テキスト ルーチンのマップ
Tchar.h のルーチン |
_UNICODE および _MBCS が未定義の場合 |
_MBCS が定義されている場合 |
_UNICODE が定義されている場合 |
---|---|---|---|
_tgetdcwd_dbg |
_getdcwd_dbg |
_getdcwd_dbg |
_wgetdcwd_dbg |
必要条件
ルーチン |
必須ヘッダー |
---|---|
_getdcwd_dbg |
<crtdbg.h> |
_wgetdcwd_dbg |
<crtdbg.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。