c++ 是否有办法检查是否已成功打开fmt::output_file进行写入

rdrgkggo  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(168)

我正在尝试使用fmt::output_file,并且正在寻找一种方法来检查文件是否已经成功打开以进行写入。这是可能的吗?做这件事的惯用方法是什么?
Demo

68de4m5k

68de4m5k1#

实际上,fmt::output_file会在Windows上使用sopen_s打开文件,在其他系统上使用open打开文件。如果文件无法打开以写入,它会抛出std::system_error。如果需要,您可以使用std::system_error::code检索返回代码。
注意,默认情况下,fmt::output_file将打开带有file::WRONLY | file::CREATE | file::TRUNC标志的文件。为了确保在给定路径不存在时不会创建文件,您应该手动传递一个不带file::CREATE的标志:

fmt::output_file(file_name, fmt::file::WRONLY | fmt::file::TRUNC);

相关问题