使用POSIX.1-2001创建临时目录

问题描述 投票:1回答:1

我正在使用的程序需要一个临时目录。但是,我想坚持使用POSIX.1-2001。在这种约束下,有没有办法使用tmpnam?我知道安全问题,但这不是我关心的问题。我不使用它的原因是它在POSIX.1-2008中被标记为过时。什么时候将删除过时的功能?

c posix stdio
1个回答
3
投票

在POSIX 2001(2004)中,您可能必须使用mktemp()创建名称,然后使用mktemp()创建具有该名称的目录。这可能导致符号链接等出现TOCTOU(检查时间,使用时间)问题。但是,尽管如此,mkdir()函数未出现在POSIX 2008中(因此有时会删除这些函数),但是可能仍在每个系统的库中。两种版本的POSIX中都存在mktemp()功能。

在POSIX 2008中,您可以改为使用tmpnam(),它具有安全性优点。

© www.soinside.com 2019 - 2024. All rights reserved.