_tempnam_dbg_wtempnam_dbg

使用 malloc_malloc_dbg 的调试版本的 _tempnam_wtempnamtmpnam_wtmpnam 的函数版本。

语法

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
);

参数

dir
文件名中使用的路径(如果不存在 TMP 环境变量或 TMP 不是有效的目录)。

prefix
将在由 _tempnam 返回的名称前面附加的字符串。

blockType
内存块的请求类型:_CLIENT_BLOCK_NORMAL_BLOCK

filename
指向已请求分配操作的源文件名的指针或 NULL

linenumber
请求分配操作所在的源文件中的行数或 NULL

返回值

如果发生失败,则每个函数均返回一个指向生成的名称的指针或 NULL。 如果在 TMP 环境变量和 dir 参数中指定的目录名称无效,则可能发生失败。

注意

对于由 freefree_dbg 分配的指针,必须调用 _tempnam_dbg(或 _wtempnam_dbg)。

备注

_tempnam_dbg_wtempnam_dbg 函数与 _tempnam_wtempnam 完全相同,只是当定义 __DEBUG 时,如果将 malloc 作为第一个参数进行传递,则这些函数将使用 _malloc_dbg 的调试版本和 NULL 来分配内存。 有关详细信息,请参阅 _malloc_dbg

在大多数情况下,无需显式调用这些函数。 可以改为定义 _CRTDBG_MAP_ALLOC 标志。 定义 _CRTDBG_MAP_ALLOC 后,对 _tempnam_wtempnam 的调用将分别重新映射到 _tempnam_dbg_wtempnam_dbg,同时会将 blockType 设置为 _NORMAL_BLOCK。 因此,无需显式调用这些函数,除非你希望将堆块标记为 _CLIENT_BLOCK。 有关详细信息,请参阅调试堆的块类型

一般文本例程映射

TCHAR.H 例程 _UNICODE_MBCS 未定义 _MBCS 已定义 _UNICODE 已定义
_ttempnam_dbg _tempnam_dbg _tempnam_dbg _wtempnam_dbg

要求

例程 必需的标头
_tempnam_dbg_wtempnam_dbg <crtdbg.h>

有关兼容性的详细信息,请参阅 兼容性

另请参阅

_tempnam_wtempnamtmpnam_wtmpnam
流 I/O
堆分配函数的调试版本