tmpnam 或 tempnam 子例程
用途
用于构造临时文件的名称。
库
标准 C 库 (libc.a)
语法
描述
滕普南 和 滕姆南 子例程生成用于临时文件的文件名。 tmpnam 子例程使用 stdio.h 文件中定义为 P_tmpdir 的路径名生成文件名。
使用 滕普南 子例程创建的文件驻留在临时使用的目录中。 文件名是唯一的。 应用程序必须创建并除去该文件。
滕姆南 子例程使您能够定义目录。 目录 参数指向要在其中创建该文件的目录的名称。 如果 Directory 参数为空指针或指向不是目录名称的字符串,那么将使用 stdio.h 文件中定义为 P_tmpdir 的路径前缀。 对于具有具有初始字母序列的临时文件的应用程序,请使用 FileXPointer 参数来定义序列。 FileXPointer 参数 (空指针或最多 5 字节的字符串) 用作文件名的开头。
在创建文件名和打开文件之间,另一个进程可以创建具有相同名称的文件。 如果另一个进程使用这些子例程或 mktemp 子例程,并且选择文件名以避免其他方法重复,那么不太可能发生名称重复。
参数
| 项 | 描述 |
|---|---|
| String | 指定至少由 L_tmpnam(在 stdio.h 文件中定义的常量) 指定的字节数组成的数组的地址。 如果 字符串 参数具有空值,那么 滕普南 子例程会将其结果放入内部静态区域并返回指向该区域的指针。 下一次调用此子例程会破坏该区域的内容。 如果 字符串 参数的值不为空,那么 滕普南 子例程将其结果放入指定的数组中并返回 字符串 参数的值。 |
| 目录 | 指向要在其中创建该文件的目录的路径名。 滕姆南 子例程控制对目录的选择。 如果 Directory 参数是空指针或指向不是相应目录的路径名的字符串,那么将使用 stdio.h 文件中定义为 P_tmpdir 的路径名。 如果该路径名不可访问,那么将使用 /tmp 目录。 您可以通过在用户环境中提供环境变量 TMPDIR来绕过对路径名的选择。 TMPDIR 环境变量的值是期望的临时文件目录的路径名。 |
| FileXPointer | 一个指针,它指向文件名开始的起始字符序列。 FileXPointer 参数值可以是空指针,也可以指向要用作临时文件名的第一个字符的字符串。 允许的字符数取决于文件系统,但允许的 5 字符数为 5 个字节。 |
返回值
完成后, 滕姆南 子例程使用 马洛克 子例程为字符串分配空间,将生成的路径名放入该空间,并返回指向该空间的指针。 否则,它将返回空指针,并设置 错误号 全局变量以指示错误。 当不再需要该空间时,可以在 自由 子例程中使用 滕姆南 返回的指针。
错误代码
如果不成功, 滕姆南 子例程将返回以下错误代码:
| 项 | 描述 |
|---|---|
| ENOMEM | 没有足够的存储空间可用。 |
| 项 | 描述 |
|---|---|
| ENINVAL | 指示无效 串 值。 |