Linux环境编程时创建临时文件

1 临时文件

在一些情况下,程序会利用一些文件形式的临时存储手段,但我们必须保证应用程序为临时文件选取的文件名是唯一的。

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

tmpnam函数返回一个不与已存在的文件同名的有效文件名,若字符串s不为空,则文件名写入它,对tmp的后续调用会覆盖存放返回值的静态存储区。该字符串长度至少为L_tmpnam个字符,且tmpnam函数可被一个程序最多调用TMP_MAX次。注意它只是返回一个独一无二的文件名,文件并未创建。
tmpfile函数返回一个文件流指针,失败时返回NULL且设置errno的值。指向一个唯一的临时文件,以读写方式打开(w+b),该函数在创建文件的同时打开文件,当对该文件的所有引用关闭时,该文件会被自动删除。创建的临时文件都位于/tmp/目录下,且进程结束时会被自动删除。
在这里插入图片描述

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

mktemp函数以指定的模板为基础创建一个唯一的文件名,模板要求template参数必须是一个以6个X字符结尾的字符串,返回一个指向生成的字符串的指针,失败时返回空指针,类似的将字符串写入template中。注意它只是返回一个独一无二的文件名,文件并未创建。
mkstemp同样创建唯一文件并打开,需要指定模板,返回值是一个已经打开的底层文件描述符,创建的文件是在当前程序所在目录下。
在这里插入图片描述
在这里插入图片描述
切记,我们要在程序中使用tmpfile和mkstemp创建并打开文件,不要使用tmpnam和mktemp。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值