Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Expand Minimize
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.

_getcwd_dbg, _wgetcwd_dbg

Debug versions of the _getcwd, _wgetcwd functions (only available during debug).

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 


Storage location for the path.


Maximum length of the path in characters: char for _getcwd_dbg and wchar_t for _wgetcwd_dbg.


Requested type of the memory block: _CLIENT_BLOCK or _NORMAL_BLOCK.


Pointer to the name of the source file that requested the allocation operation or NULL.


Line number in the source file where the allocation operation was requested or NULL.

Returns a pointer to buffer. A NULL return value indicates an error, and errno is set either to ENOMEM, indicating that there is insufficient memory to allocate maxlen bytes (when a NULL argument is given as buffer), or to ERANGE, indicating that the path is longer than maxlen characters.

For more information, see errno, _doserrno, _sys_errlist, and _sys_nerr.

The _getcwd_dbg and _wgetcwd_dbg functions are identical to _getcwd and _wgetcwd except that, when _DEBUG is defined, these functions use the debug version of malloc and _malloc_dbg to allocate memory if NULL is passed as the first parameter. For more information, see _malloc_dbg.

You do not need to call these functions explicitly in most cases. Instead, you can define the _CRTDBG_MAP_ALLOC flag. When _CRTDBG_MAP_ALLOC is defined, calls to _getcwdand _wgetcwdare remapped to _getcwd_dbgand _wgetcwd_dbg, respectively, with the blockType set to _NORMAL_BLOCK. Thus, you do not need to call these functions explicitly unless you want to mark the heap blocks as _CLIENT_BLOCK. For more information, see Types of Blocks on the Debug Heap.

Tchar.h routine

_UNICODE and _MBCS not defined

_MBCS defined

_UNICODE defined






Required header





For more compatibility information, see Compatibility in the Introduction.

Community Additions

© 2015 Microsoft