【发布时间】:2021-11-25 18:49:20
【问题描述】:
我想以线程安全的方式创建一个输出文件,但前提是它不存在。我想使用文件系统进行同步。对于open(),我将使用标志O_RWRONLY|O_CREAT|O_EXCL。有没有办法在 C++17 中使用 iostream 或 fstream 来做到这一点?
【问题讨论】:
-
不,这是特定于操作系统的东西。
-
C23 和 C++23 正在考虑在各自的标准库中对此提供适当的支持。 POSIX 当然定义了
fdopen和O_EXCL,但没有可移植的 C++ 等价物。 -
谢谢。如果您使用 C++23,最好有一种基于标准的方式来处理内存映射文件。
标签: c++17 fstream iostream ofstream