【发布时间】:2017-05-12 20:37:32
【问题描述】:
用于 Boost 的旧 feature request 要求在 Boost.Filesystem 中提供类似于 mkstemp POSIX 函数的功能。该问题已解决已久,并附有评论
版本 3 中的 unique_path() 函数解决了这个问题。
但我看不到unique_path 是如何解决问题的。与tmpnam基本相同:在生成名称之后,在创建实际文件之前,另一个程序可能已经创建了同名的文件。
那么它应该如何解决mkstemp 的需求呢?
【问题讨论】:
-
无论您选择哪个文件名,其他程序可能已经在使用它。但是由于生成一个相当独特的文件路径非常简单,因此几乎不会发生这种冲突。
-
不过,
unique_path被认为是足以在 C++17 中被拒绝的安全漏洞:wg21.cmeerw.net/lwg/issue2633。
标签: c++ boost temporary-files boost-filesystem