创建临时文件 tmpnam tmpfile tempnam mkstemp unlink
2012-12-12 23:02
393 查看
int mkstemp(char *template);
mkstemp函数在系统中以唯一的文件名创建一个文件并打开,而且只有当前用户才能访问这个临时文件,并进行读、写操作。
建立唯一临时文件名, template须以数组形式声明而非指针形式.
template格式为: template.XXXXXX. 最后6位必须为XXXXXX, 前缀随意
函数返回一个文件描述符,如果执行失败返回-1。
在glibc 2.0.6 以及更早的glibc库中这个文件的访问权限是0666,glibc 2.0.7以后的库这个文件的访问权限是0600。
由于mkstemp函数创建的临时文件不能自动删除,所以执行完mkstemp函数后要调用unlink函数,unlink函数删除文件的目录入口,
但临时文件还可以通过文件描述符进行访问,直到最后一个打开的进程关闭文件操作符,或者程序退出后临时文件被自动彻底地删除。
下面是一个使用mkstemp的例子:
[cpp] view
plaincopy
int main(void)
{
int fd;
char temp_file[]="tmp_XXXXXX";
/*Creat a temp file.*/
if((fd=mkstemp(temp_file))==-1)
{
printf("Creat temp file faile./n");
exit(1);
}
/*Unlink the temp file.*/
unlink(temp_file);
close(fd);
}
mkstemp函数在系统中以唯一的文件名创建一个文件并打开,而且只有当前用户才能访问这个临时文件,并进行读、写操作。
建立唯一临时文件名, template须以数组形式声明而非指针形式.
template格式为: template.XXXXXX. 最后6位必须为XXXXXX, 前缀随意
函数返回一个文件描述符,如果执行失败返回-1。
在glibc 2.0.6 以及更早的glibc库中这个文件的访问权限是0666,glibc 2.0.7以后的库这个文件的访问权限是0600。
由于mkstemp函数创建的临时文件不能自动删除,所以执行完mkstemp函数后要调用unlink函数,unlink函数删除文件的目录入口,
但临时文件还可以通过文件描述符进行访问,直到最后一个打开的进程关闭文件操作符,或者程序退出后临时文件被自动彻底地删除。
下面是一个使用mkstemp的例子:
[cpp] view
plaincopy
int main(void)
{
int fd;
char temp_file[]="tmp_XXXXXX";
/*Creat a temp file.*/
if((fd=mkstemp(temp_file))==-1)
{
printf("Creat temp file faile./n");
exit(1);
}
/*Unlink the temp file.*/
unlink(temp_file);
close(fd);
}
相关文章推荐
- 创建临时文件 tmpnam tmpfile tempnam mkstemp unlink
- 创建临时文件 tmpnam tmpfile tempnam mkstemp unlink
- 创建临时文件——tmpnam,tmpfile,mktemp,mkstemp
- confluence创建文件报错 can not create to file /tmp/xxx Errcode:28,引出的 df命令高级用法
- 利用mkstemp创建程序退出后不会被删除的临时文件
- Linux中临时文件创建函数mkstemp的用法
- Apache Commons FileUpload不安全临时文件创建漏洞(CVE-2013-0248)
- Linux中临时文件创建函数mkstemp的用法
- 通过unlink创建安全的临时文件
- PHP 使用tempnam保存临时文件,而不是自己维护临时文件的创建和删除
- tempfile.mkstemp 创建的文件的删除问题
- 通过先unlink()后close()创建安全的临时文件
- thinkphp Upload上传文件在客户端生成的临时文件$_FILES['file']['tmp_name']
- "ORA-20100: 为 FND_FILE 创建文件 o0003167.tmp 失败"
- 【Java】File.createTempFile创建临时文件
- "ORA-20100: 为 FND_FILE 创建文件 o0003167.tmp 失败"
- C# 通过用application.startuppath+tmp创建图片存储临时虚拟文件
- "ORA-20100: 为 FND_FILE 创建文件 o0003167.tmp 失败"
- outlook2007"无法创建工作文件,请检查临时环境变量"问题解决
- Office 无法创建工作文件 请检查临时环境变量