MKTEMP - Linux手册页
时间:2019-08-20 18:00:53 来源:igfitidea点击:
Linux程序员手册 第3部分
更新日期: 2017-09-15
名称
mktemp-制作一个唯一的临时文件名
语法
#include <stdlib.h> char *mktemp(char *template);
glibc的功能测试宏要求(请参阅feature_test_macros(7)):
mktemp():
- Since glibc 2.12:
- (_XOPEN_SOURCE>= 500)&&! (_POSIX_C_SOURCE>= 200112L) || / * Glibc自2.19起:* / -_DEFAULT_SOURCE || / * Glibc
- Before glibc 2.12:
- _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE>= 500
说明
切勿使用此功能;参见错误。
mktemp()函数从模板生成唯一的临时文件名。模板的最后六个字符必须为XXXXXX,并用使文件名唯一的字符串替换。由于将对其进行修改,因此模板不能为字符串常量,而应声明为字符数组。
返回值
mktemp()函数始终返回模板。如果创建了唯一名称,则模板的最后六个字节将被修改,以使结果名称是唯一的(即,尚不存在)。如果无法创建唯一名称,则将模板设为空字符串,并将errno设置为指示错误。
错误说明
- EINVAL
- 模板的最后六个字符不是XXXXXX。
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
mktemp() | Thread safety | MT-Safe |
遵循规范
4.3 BSD,POSIX.1-2001。 POSIX.1-2008删除了mktemp()的规范。
BUGS
永远不要使用mktemp()。一些实现遵循4.3BSD并用当前进程ID和单个字母替换XXXXXX,以便最多可以返回26个不同的名称。由于一方面名称很容易猜测,另一方面在测试名称是否存在与打开文件之间存在竞争,因此每次使用mktemp()都会带来安全风险。 mkstemp(3)和mkdtemp(3)避免了竞争。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。