Share via


_tempnam_dbg、_wtempnam_dbg

使用 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 参数中指定的目录名称无效,则可能发生失败。

备注

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

备注

_tempnam_dbg和 _wtempnam_dbg函数与 _tempnam和 _wtempnam完全相同,只是当定义 _DEBUG时,如果将 NULL 作为第一个参数进行传递,则这些函数将使用 malloc 的调试版本和 _malloc_dbg 来分配内存。 有关详细信息,请参见_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>

有关其他兼容性信息,请参阅“简介”中的兼容性

.NET Framework 等效项

不适用。若要调用标准 C 函数,请使用 PInvoke。有关详细信息,请参见平台调用示例

请参见

参考

_tempnam、_wtempnam、tmpnam、_wtmpnam

流 I/O

概念

堆分配函数的“Debug”版本