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);
}
#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);
}
相关文章推荐
- Linux系统编程:标准IO操作--索引对应路径下的文件
- Linux系统编程:标准IO操作--索引对应路径下的文件
- linux 文件IO和标准IO的一些实现细节
- linux 文件IO和标准IO
- linux系统编程之文件与io(四)
- UNIX高级环境编程(7)标准IO函数库 - 二进制文件IO,流定位,创建临时文件和内存流
- Linux编程-标准IO(3)
- linux标准文件编程库(高级文件编程)
- linux系统编程之文件与io(三)
- linux编程-标准IO
- linux系统编程之文件与io(五)
- Linux下C编程-----IO/文件操作/内存映射 实现简单记录存储(3)
- linux系统编程之文件与IO(一):文件描述符、open,close
- 第一章Linux标准IO编程
- Linux下C编程入门笔记——文件IO操作(二)
- Linux文件IO编程
- linux系统编程之文件与IO(八):文件描述符相关操作-dup,dup2,fcntl
- linux系统编程之文件与IO:stat()系统调用获取文件信息
- Linux下C编程-----文件操作(1) 通过系统调用简单操作标准输入、标准输出、标准错误
- Linux编程-标准IO(2)