我正在尝试在系统临时文件夹中创建一个独特的临时目录,并一直在阅读有关tmpnam()的安全性和文件创建问题的文章。
我编写了下面的代码,想知道它是否能满足这些问题,我的tmpnam()函数的使用是否正确,以及filesystem_error的抛出是否正确?我是否应该添加其他检查(例如temp_directory_path,也会抛出异常)?
我编写了下面的代码,想知道它是否能满足这些问题,我的tmpnam()函数的使用是否正确,以及filesystem_error的抛出是否正确?我是否应该添加其他检查(例如temp_directory_path,也会抛出异常)?
// Unique temporary directory path in the system temporary directory path.
std::filesystem::path tmp_dir_path {std::filesystem::temp_directory_path() /= std::tmpnam(nullptr)};
// Attempt to create the directory.
if (std::filesystem::create_directories(tmp_dir_path)) {
// Directory successfully created.
return tmp_dir_path;
} else {
// Directory could not be created.
throw std::filesystem_error("directory could not be created.");
}
create_directories(path, std::error_code)
提供另一个参数。这就是你获取错误代码的方式。 - Galik