您的位置:首页 > 运维架构 > Linux

Linux编程-标准IO(4)-临时文件

2014-12-21 02:07 330 查看
以下两种创建临时文件的接口测试
#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include "tmpfile.h"

#include <unistd.h>

#define MAXLINE 1024

void myTmpfile()

{
char name[L_tmpnam], line[MAXLINE];
FILE* fp;

//获取临时文件名
printf("time:%d\n", TMP_MAX);
printf("%s\n", tmpnam(NULL));
tmpnam(name);
printf("%s\n", name);

//创建临时文件
if ((fp = tmpfile()) == NULL)
{
printf("Create tmp file failed\n");
return;
}

fputs("one line of output\n", fp);
rewind(fp);

if (fgets(line, sizeof(line), fp) == NULL)
{
printf("fgets failed\n");
return;
}
else
{
fputs(line, stdout);
}

fclose(fp);

char szTmpFile[1024] = "TmpFile_XXXXXX";
sprintf(szTmpFile, "%s/TmpFile_XXXXXX", P_tmpdir);
int htmpFile = mkstemp(szTmpFile);
if (-1 == htmpFile)
{
printf("Create tmpFile Failed\n");
return;
}
else
{

usleep(15 * 1000 * 1000);
//mkstem 创建的临时文件需要自己手动删除 
unlink(szTmpFile); //解除关联,进程结束时,文件自动释放
printf("Tmp file name:%s\n", szTmpFile);
}

char szbuf[100] = "write tmpfile";
if (strlen(szbuf) != write(htmpFile, szbuf, strlen(szbuf)))
{
printf("write file failed\n");
return;
}
else
{
printf("write Data:%s\n", szbuf);
}

lseek(htmpFile, SEEK_SET, 0);
char szbuf2[100] = {0};
if (read(htmpFile, szbuf2, 100) == EOF)
{
printf("read file failed\n");
return;
}
else
{
printf("read data:%s\n", szbuf2);
}

close(htmpFile);

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