是否可以通过调用mkstemp()
获取文件名(和路径)?如果"是",怎么样?
答案 0 :(得分:5)
模板的最后六个字符必须是“XXXXXX”,并且这些字符将替换为使文件名唯一的字符串。由于它将被修改,因此模板不能是字符串常量,而应该声明为字符数组。
因此,您声明一个数组并将其传递给函数,该函数将对其进行修改,然后您将在数组中包含文件名。
答案 1 :(得分:3)
输入字符串被修改为文件名。因此,它不能是字符串文字。
POSIX说mkstemp()
:
#include <stdlib.h> int mkstemp(char *template);
mkstemp()
函数将用唯一的路径名替换template
指向的字符串的内容,并返回打开的文件的文件描述符以供读取和写入。 ...template
中的字符串应该看起来像一个带有六个尾随'X'的路径名;mkstemp()
将每个'X'替换为可移植文件名字符集中的字符。 ...
同一页面还描述了可用于创建临时目录的mkdtemp()
。