gpt4 book ai didi

c++ - CreateFile 异常安全吗?

转载 作者:行者123 更新时间:2023-11-30 19:04:55 63 4
gpt4 key购买 nike

我正在使用 CreateFile() 打开并读取文件。如果抛出异常,文件是否会被关闭,或者我是否需要捕获它并自己关闭文件。如果后者是真的,捕获并关闭文件的最佳方法是什么。谢谢!

最佳答案

文件不会关闭。如果你想确保它是关闭的,你可以将它包裹在 unique_ptr 中。使用自定义删除器,如下所示:

struct HandleDeleter
{
void operator ()(HANDLE hObject) { CloseHandle(hObject); }
};

using SafeHandle = std::unique_ptr<HANDLE, HandleDeleter>; // for convenience

void someFunction()
{
// automatically closed at the end of parent scope:
SafeHandle hFile(CreateFile(...));

throw std::runtime_error("the file will be closed now");
}

关于c++ - CreateFile 异常安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50899848/

63 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com