_tempnam_dbg, _wtempnam_dbg

Function versions of _tempnam, _wtempnam, tmpnam, _wtmpnam that use the debug version of malloc, _malloc_dbg.

Syntax

char *_tempnam_dbg(
   const char *dir,
   const char *prefix,
   int blockType,
   const char *filename,
   int linenumber
);
wchar_t *_wtempnam_dbg(
   const wchar_t *dir,
   const wchar_t *prefix,
   int blockType,
   const char *filename,
   int linenumber
);

Parameters

dir
The path used in the file name if there's no TMP environment variable, or if TMP isn't a valid directory.

prefix
The string that will be pre-pended to names returned by _tempnam.

blockType
Requested type of memory block: _CLIENT_BLOCK or _NORMAL_BLOCK.

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

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

Return value

Each function returns a pointer to the name generated or NULL if there's a failure. Failure can occur if there's an invalid directory name specified in the TMP environment variable and in the dir parameter.

Note

free (or free_dbg) does need to be called for pointers allocated by _tempnam_dbg and _wtempnam_dbg.

Remarks

The _tempnam_dbg and _wtempnam_dbg functions are identical to _tempnam and _wtempnam 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 don't need to call these functions explicitly in most cases. Instead, you can define the flag _CRTDBG_MAP_ALLOC. When _CRTDBG_MAP_ALLOC is defined, calls to _tempnam and _wtempnam are remapped to _tempnam_dbg and _wtempnam_dbg, respectively, with the blockType set to _NORMAL_BLOCK. Thus, you don't 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.

Generic-text routine mappings

TCHAR.H routine _UNICODE and _MBCS not defined _MBCS defined _UNICODE defined
_ttempnam_dbg _tempnam_dbg _tempnam_dbg _wtempnam_dbg

Requirements

Routine Required header
_tempnam_dbg, _wtempnam_dbg <crtdbg.h>

For more compatibility information, see Compatibility.

See also

_tempnam, _wtempnam, tmpnam, _wtmpnam
Stream I/O
Debug versions of heap allocation functions