博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助 

中国宏软--老张的工作室

投身自由,坚持开源!
creatory.cublog.cn
关于作者  
姓名:张绍言
职业:Linux
年龄:22
格言:努力就有可能成功
院校::山东科技大学
联系我:
E-mail:creatory@mail.com
MSN:creatory@mail.com

我的分类  




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

 发表于: 2008-03-27,修改于: 2008-03-27 14:20
 已浏览223次,有评论0条
推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:15.32732

京ICP证041476号