Linux下创建临时文件

发表于:2012-4-23 10:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:w397090770    来源:51Testing软件测试网采编

  临时文件是一个暂时用来存储数据的文件。如果使用建立普通文件的方法来创建文件,则可能遇到文件是否存在,是否有文件读写权限的问题。Linux系统下提供的建立唯一的临时文件的方法如下:

#include<stdio.h>
char *tmpnam(char *s);
FILE *tmpfile();

  函数tmpnam()产生一个唯一i的文件名。如果参量为NULL,则在一个内部使用的缓冲区内产生文件名,当下一次调用该函数的时候,则可能覆盖该文件名。如果参数不是为NULL,则名字拷贝到字符串中,字符串的长度至少为L_tmpnam,它定义在stdio.h中。如果不成功则函数返回NULL。函数tmpfile()则返回一个临时文件的描述符,文件的打开属性是读和写。相当于使用fopen以w+打开。如果不成功则返回NULL。

  下面是一个简短的列子。

#include<stdio.h>
int main(){
 char tmpname[L_tmpnam];
 char *filename;
 FILE *fp;
 
 filename = tmpname(tmpname);
 printf("Temporary file name is %s\n", filename);
 
 fp = tmpfile();
 if(fp){
  printf("Temporary file opened!\n");
 }else{
  perror("tmpfile");
 }
 return 0;
 }

  此外,还有两个函数也可以创建临时文件:

#include<stdio.h>
char *mktemp(char *template);
int mkstemp(char *template);

  函数mktemp()从给定的模块template中创建唯一的临时文件名。模版可以是文件路径的前缀,模版的最后6个字符必须是“XXXXXX”,比如:

char template[L_tmpnam];
char *filename;

strcpy(template, "/temp/wypXXXXXX");
filename = mktemp(template);
printf("Temporary file name is %s\n", filename);

  函数mkstemp()类似于tmpfile(),但是打开的文件相当于使用提供底层的文件操作函数open()打开文件。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号