|
临时文件创建 <stdio.h> char *tmpnam(char *buf); 仅生成在/tmp/目录下的临时文件名并不创建临时文件本身 例: #include <unistd.h> #include <stdio.h> #include <stdlib.h> int main() { char filename[1024]; char cmd[1024]; FILE *tmp=0; tmpnam(filename); printf("%s\n",filename); tmpf=fopen(filename,"w"); sprintf(cmd,"ls -l %s",filename); system(cmd); fclose(tmp); unlink(filename); return 0; } 创建临时文件 <stdlib.h> int mkstemp(char *template); 从模板中生成临时文件名并创建打开该文件返回一个文件描述符 模板一般为:/var/tmp/tmp.XXXX 例: #include <unistd.h> #include <stdlib.h> #include <string.h> #include <stdio.h> int main() { char tmppath[64]; int fd=-1; FILE *tmp=0; strcpy(tmppath,"/tmp/tmp.XXXXXX"); fd=mkstemp(tmppath); printf("%s\n",tmppath); tmp=fdopen(fd,"w+"); fprintf(tmp,"creatory:%d\n",(long)getpid()); fclose(tmp); return 0; } 执行后去/tmp目录下就可以找到生成的临时文件 生成临时文件 <stdio.h> FILE *tmpfile(void); 创建并打开文件,返回FILE流指针 在指定的目录中用指定的前缀创建临时文件 <stdio.h> char *tempnam(const char *dir,const char *prefix); 安全使用临时文件 确认临时文件被释放的一种方法是在文件被创建和打开后就立即释放它,因为在UNIX中文件可在被解除链接后存在,只要文件保持打开当最后打开文件的描述符被关闭时磁盘空间就被内核收回. C库函数atexit允许程序员注册一个函数,它可用于所有类型的清除任务,在此主要兴趣在于清除临时文件. <stdlib.h> int atexit(void (*func)(void));
|