已移到:http://www.iteblog.com/archives/172

临时文件是一个暂时用来存储数据的文件。如果使用建立普通文件的方法来创建文件,则可能遇到文件是否存在,是否有文件读写权限的问题。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()打开文件。

转载请注明: 转载自过往记忆(http://www.iteblog.com/)

本文链接地址: Linux下创建临时文件(http://www.iteblog.com/archives/172)

Linux下创建临时文件相关推荐

  1. Linux下创建硬链接,文件访问为空,提示:xxxx: 符号连接的层数过多

    Linux下创建软链接|硬链接,文件访问为空,提示:x x x: 符号连接的层数过多. 原因:创建符号链接的时候未使用绝对路径,无论是源文件路径还是目标路径,都需要使用绝对路径. 如: ln -s / ...

  2. linux下创建具有root权限的账户

    linux下创建具有root权限的账户 http://blog.chinaunix.net/uid-24631445-id-2981034.html posted on 2013-11-01 20:3 ...

  3. Linux下创建用户、切换用户、删除用户

    Linux下创建用户: useradd tooker #创建用户tooker passwd tooker #给用户tooker设置密码,如果没有设置密码该用户不能用 useradd -g users ...

  4. linux 下创建文件的方法

    linux  下创建文件的方法 touch  aaa.txt    创建一个叫aaa.txt的文件 echo   ""  >>  aaa.txt    创建一个叫aaa ...

  5. linux spyder 目录,linux下创建spyder桌面图标的方法

    linux下创建spyder桌面图标的方法 发布时间:2020-07-20 11:08:41 来源:亿速云 阅读:96 作者:清晨 小编给大家分享一下linux下创建spyder桌面图标的方法,希望大 ...

  6. linux下创建用户及组

    linux下创建用户及组: 1.创建组 groupadd  组名 2.创建用户,并将用户添加到组 useradd  用户名  -g  组名 3.更改用户的密码 password  用户名 4.修改目录 ...

  7. 4.windows和Linux下创建oracle用户名表空间,表,插入数据,用户管理表等操作

    进入超级管理员,执行以下命令 Window下创建数据库,表空间,用户,插入数据等操作 -- 01 创建表空间 -- 注意表空间的路径 根据实际安装环境进行调整 CREATE TABLESPACE ts ...

  8. linux下创建svn仓库及用户

    1 Linux下创建svn仓库 1.1 启动SVN服务 svnserve -d -r  /SVNRootDirectry 其中SVNRootDirectry是你的SVN 根目录,例如192.85.1. ...

  9. Linux下创建和删除用户

    Linux下创建和删除用户 目录 Linux下创建和删除用户 1 创建新用户 2 配置新用户 3 进入新用户 4 删除用户 1 创建新用户 在普通root用户下可能没有权限操作,因此直接在root下操 ...

最新文章

  1. php 魔术方法 说明
  2. 超越英伟达的,不会是另一款GPU?这家深圳公司发布全球首款数据流AI芯片
  3. java冒泡排序函数验证_java冒泡排序-选择排序-插入排序-使用API中文文档直接调用函数...
  4. GCD 深入理解:第一部分
  5. 终端滑模matlab程序,滑模变结构控制 MATLAB程序
  6. php_self nginx,nginx中的PATH_INFO为什么会影响$_SERVIER['PHP_SELF']
  7. Flutter StreamBuilder 异步更新数据
  8. SPSS学习笔记(二)T检验
  9. AUTOSAR实战教程pdf版
  10. 在线作图丨数据降维分析④——NMDS分析
  11. EasyUI的基本使用布局
  12. Delphi: RTTI与ini配置文件
  13. 光线微弯传感器matlab仿真,基于输出光斑旋转的光纤微弯位移传感器
  14. 怎么录制视频声音,什么录音软件好用
  15. scratch教程----5.特效的制作
  16. 2019牛客暑期多校训练营(第七场)D Number——实系数多项式因式分解定理
  17. hdl-grap-slam 运行以及编译
  18. 系统盘下system32下的文件说明
  19. RTOS系列文章(6):Cortex-M3/4之SP,MSP,PSP,Thread模式、Handler模式、内核态、用户态
  20. Springboot循环依赖解决办法

热门文章

  1. 天之痕java 郡王府_iOS/安卓版《轩辕剑3外传:天之痕》图文攻略承之十二:巴蜀古王墓...
  2. 红魔6S Pro:6项重大升级铸就年度游戏旗舰
  3. 量化投资 第27章 K线图 27.3.1
  4. 创建多个key并使用/指定key
  5. Makefile -Linux编译必备知识
  6. 阿里云相关配置和参数
  7. 关于电信、网通检测ADSL共享上网的技术手段
  8. zabbix(一)安装
  9. r语言各形状编号_R语言进阶之图形参数
  10. 感慨啊,我国的电子竞技!