用标准C创建临时文件
来源:互联网 发布:网络防诈骗电话费骗局 编辑:程序博客网 时间:2024/05/29 12:58
/*
g++ -ocreatetempfile createtempfile.cpp
创建临时文件并写入数据。
王军建
2007-12-18
*/
#include <stdio.h>
#include <string.h>
bool createtempfile(void* buffer, int buffer_len, char* tempfilename)
{
if (buffer==NULL || buffer_len<=0)
return false;
char* prefix = "wjj";
char* tempfile = tempnam("/tmp", prefix);
FILE* pFile;
pFile = fopen(tempfile, "w+");
if (pFile)
{
fwrite(buffer, 1, buffer_len, pFile);
fclose(pFile);
strcpy(tempfilename, tempfile);
//注意:tempnam内部用了malloc来分配的内存,所以这里要调用free。
//网上许多例子都没有调用,如果你在程序中频繁调用就出现内存泄漏。
free(tempfile);
return true;
}
return false;
}
int main()
{
char tempfile[500];
memset(tempfile, 0, sizeof(tempfile));
char* data = "hello world!";
if ( createtempfile(data, strlen(data), tempfile) )
{
printf("%s/n", tempfile);
remove(tempfile);
}
return 0;
}
关于tempnam函数的定义:
char *
(const char *dir, const char *pfx)
{
size_t len;
register char *s;
register char *t = __stdio_gen_tempname(dir, pfx, 1, &len, (FILE **) NULL);
if (t == NULL)
return NULL;
s = (char *) malloc(len);
if (s == NULL)
return NULL;
(void) memcpy(s, t, len);
return s;
}
参考资料:
http://www.nleymann.de/Nextstep/sources/tempnam.c
- 用标准C创建临时文件
- C实例---创建临时文件
- c下创建临时文件mkstemp函数
- c下创建临时文件mkstemp函数
- c下创建临时文件mkstemp函数
- 创建临时文件
- 创建临时文件
- 创建临时文件
- 创建临时文件
- C# 创建临时文件
- java创建临时文件
- tmpfile创建临时文件
- 创建和使用临时文件
- shell创建临时文件
- java创建临时文件
- UNIX创建临时文件
- Linux下创建临时文件
- java 创建临时临时文件
- vc中把变量定义在某一绝对地址上
- 数据库开发心得
- 第一次使用Windows live writer写blog,试试而已
- JAVA版农历和阳历相互转换源码
- 在WinCE5.0和WinCE6.0下,编译选项介绍
- 用标准C创建临时文件
- 使用python连接oracle数据库
- String 和 int转换
- 如何建立一个“远近皆宜”的数据库应用环境
- 有感于《清华计算机系旁听有感》
- 东极游
- EXTRAIN新拓展训练
- 关于SQL SERVER中系统函数调用的问题
- 经典正则表达式