_getcwd、_wgetcwd関数のバージョンをデバッグします (デバッグ中にのみ使用できます)。
構文
char *_getcwd_dbg(
char *buffer,
int maxlen,
int blockType,
const char *filename,
int linenumber
);
wchar_t *_wgetcwd_dbg(
wchar_t *buffer,
int maxlen,
int blockType,
const char *filename,
int linenumber
);
パラメーター
buffer
パスの格納場所。
maxlen
文字数でのパスの最大長。char の場合は _getcwd_dbg、および wchar_t の場合は _wgetcwd_dbg。
blockType
要求するメモリ ブロックの種類。_CLIENT_BLOCK または _NORMAL_BLOCK。
filename
割り当て操作を要求したソース ファイル名へのポインターまたは NULL。
linenumber
割り当て操作が要求されたソース ファイル内の行番号または NULL。
戻り値
bufferへのポインターを返します。 NULL戻り値はエラーを示し、errnoはENOMEMに設定されます。これは、maxlen バイトを割り当てるメモリが不足していることを示します (NULL引数がbufferとして指定されている場合)、またはERANGEしてパスがmaxlen文字より長くなっていることを示します。
詳細については、「errno」、「_doserrno」、「_sys_errlist」、および「_sys_nerr」を参照してください。
解説
_getcwd_dbg関数と_wgetcwd_dbg関数は、_getcwdおよび_wgetcwdと同じですが、_DEBUGが定義されている場合、これらの関数はデバッグ バージョンの malloc と_malloc_dbgを使用して、NULLが最初のパラメーターとして渡された場合にメモリを割り当てます。 詳細については、_malloc_dbgを参照してください。
ほとんどの場合、これらの関数を明示的に呼び出す必要はありません。 代わりに、_CRTDBG_MAP_ALLOC フラグを定義できます。 _CRTDBG_MAP_ALLOC が定義されている場合、_getcwd および _wgetcwd の呼び出しはそれぞれ _getcwd_dbg および _wgetcwd_dbg にマップし直され、blockType が _NORMAL_BLOCK に設定されます。 したがって、ヒープ ブロックを _CLIENT_BLOCKとしてマークしない限り、これらの関数を明示的に呼び出す必要はありません。 詳細については、デバッグ ヒープ上のメモリ ブロックの型に関する記事をご覧ください。
汎用テキスト ルーチン マッピング
| Tchar.h のルーチン | _UNICODE と _MBCS が定義されていない |
_MBCS が定義されている |
_UNICODE が定義されている |
|---|---|---|---|
_tgetcwd_dbg |
_getcwd_dbg |
_getcwd_dbg |
_wgetcwd_dbg |
要件
| ルーチンによって返される値 | 必須ヘッダー |
|---|---|
_getcwd_dbg |
<crtdbg.h> |
_wgetcwd_dbg |
<crtdbg.h> |
互換性の詳細については、「 Compatibility」を参照してください。