%>
使用 malloc
、_malloc_dbg
的调试版本的 _tempnam
、_wtempnam
、tmpnam
、_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
参数中指定的目录名称无效,则可能发生失败。
注意
对于由 free
和 free_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 |
要求
例程 | 必需的标头 |
---|---|
%> | <crtdbg.h> |
有关兼容性的详细信息,请参阅 兼容性。