跳转到内容

mktemp, mkstemp : 生成未使用的文件名

#include <stdio.h>
char *mktemp(char *path);
int mkstemp(char *path);
char *_mktemp_r(void *reent, char *path);
int *_mkstemp_r(void *reent, char *path);
```### 描述
mktemp 和 mkstemp 尝试生成一个尚未被任何现有文件使用的文件名。mkstemp 会创建该文件并将其打开以供读写;mktemp 只是简单地生成文件名。
您可以为生成的文件名提供一个简单的模式,作为 path 处的字符串。该模式应该是一个有效的文件名(如果需要,可以包含路径信息),并以一定数量的 `X' 字符结尾。生成的文件名将与您提供名称的前导部分相匹配,其中尾随的 `X' 字符将被数字和字母的某种组合所替换。
备用函数 _mktemp_r 和 _mkstemp_r 是可重入版本。额外的参数 reent 是一个指向可重入结构的指针。### 返回值
mktemp 返回指向修改后字符串的指针 path,该字符串表示一个未使用的文件名,除非它无法生成该文件名,或者您提供的模式不适合作为文件名;在这种情况下,它返回 NULL。
mkstemp 返回一个指向新创建文件的文件描述符,除非它无法生成未使用的文件名,或者您提供的模式不适合作为文件名;在这种情况下,它返回 -1。
---
**权威来源**: BUSMASTER DITA help source `mktemp.dita`, compiled into `BUSMASTER.CHM` with the application.