您的位置:首页 > 其它

创建临时文件 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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: