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