man mktemp

名称

        mktemp – 制作一个唯一的临时文件名

概要

        #include <stdio.h>

        char *mktemp(char *template);

    对于glibc来说要有功能测试宏才能使用(参考feature_test_macros):

        mktemp():

            从glibc 2.3.3开始:

                _BSD_SOURCE || _SVID_SOURCE ||

                    (_XOPEN_SOURCE >= 500 ||

                        _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) &&

                    !(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)

            glibc 2.3.3之前:

                _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 ||

                 _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

说明

        永远不要使用这个函数。参考BUGS

        mktemp函数以参数template生成唯一的临时文件名。template的最后六个字符必

        须是XXXXXX,这些字符将被替换为使文件名唯一的字符串。由于会被修改,因此

        template不能是字符串常量,而应声明为字符数组。

返回值

        mktemp总是返回template,如果创建了唯一名称,则template的最后六个字节将

        被修改,结果名称是唯一的(即原先不存在),如果无法创建唯一名称,template

        将变为空字符串,并设置errno以指示错误。

错误

        EINVAL  template的最后六个字符不是XXXXXX。

线程安全特征

接口

特征

mktemp()

线程安全

多线程安全

标准

        遵循4.3BSD, POSIX.1-2001。POSIX.1-2008删除了mktemp。

BUGS

      永远不要使用这个函数,一些实现遵循4.3BSD,将XXXXXX替换为当前进程ID和单

      个字母,这样最多可以返回26个不同的名称,由于一方面名称很容易猜到,另一方

      面在测试名称是否存在和打开文件之间存在竞争,因此每次调用mktemp都存在安全

      风险。mkstemp和mkdtemp避免了这样的竞争。

推荐阅读

      mkdtemp,mkstemp,tempnam,tmpfile,tmpnam

版本记录

        这个页面是Linux man-pages项目4.04版本的一部分。关于该项目的信息和bug报

        道可以在该网站找到:http://www.kernel.org/doc/man-pages/。

                                2015-08-08

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ta是一个搬运工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值