C语言mkstemp()函数:建立临时文件
相关函数:mktemp
头文件:#include <stdlib.h>
定义函数:int mkstemp(char * template);
函数说明:mkstemp()用来建立唯一的临时文件. 参数template 所指的文件名称字符串中最后六个字符必须是XXXXXX. Mkstemp()会以可读写模式和0600 权限来打开该文件, 如果该文件不存在则会建立该文件. 打开该文件后其文件描述词会返回. 文件顺利打开后返回可读写的文件描述词. 若果文件打开失败则返回NULL, 并把错误代码存在errno 中.
错误代码:EINVAL 参数template 字符串最后六个字符非XXXXXX. EEXIST 无法建立临时文件.
附加说明:
参数 template 所指的文件名称字符串必须声明为数组, 如:
char template[] = "template-XXXXXX";
千万不可以使用下列的表达方式
char *template = "template-XXXXXX";
范例
#include <stdlib.h>
main()
{
int fd;
char template[] = "template-XXXXXX";
fd = mkstemp(template);
printf("template = %s\n", template);
close(fd);
}
执行
template = template-lgZcbo
头文件:#include <stdlib.h>
定义函数:int mkstemp(char * template);
函数说明:mkstemp()用来建立唯一的临时文件. 参数template 所指的文件名称字符串中最后六个字符必须是XXXXXX. Mkstemp()会以可读写模式和0600 权限来打开该文件, 如果该文件不存在则会建立该文件. 打开该文件后其文件描述词会返回. 文件顺利打开后返回可读写的文件描述词. 若果文件打开失败则返回NULL, 并把错误代码存在errno 中.
错误代码:EINVAL 参数template 字符串最后六个字符非XXXXXX. EEXIST 无法建立临时文件.
附加说明:
参数 template 所指的文件名称字符串必须声明为数组, 如:
char template[] = "template-XXXXXX";
千万不可以使用下列的表达方式
char *template = "template-XXXXXX";
范例
#include <stdlib.h>
main()
{
int fd;
char template[] = "template-XXXXXX";
fd = mkstemp(template);
printf("template = %s\n", template);
close(fd);
}
执行
template = template-lgZcbo