姬長信(Redy)

c – 使用RAII从C风格的API管理资源


Resource Acquisition is Initialization(RAII)通常用于管理资源的生命周期,这些资源在生命周期结束时需要某种方式的清理代码,从删除新指针到释放文件句柄.

如何快速轻松地使用RAII来管理从C风格API获取的资源的生命周期?

在我的情况下,我想使用RAII从C风格的API中自动执行清理函数,当它发布的C风格资源的变量超出范围时.我不需要额外的资源包装,我想在这里最小化使用RAII的代码开销.有没有一种简单的方法可以使用RAII来管理C风格的API资源?

How to encapsulate C api into RAII C++ classes?是相关的,但我不认为它是重复的 – 这个问题是关于更完整的封装,而这个问题是关于获得RAII优势的最小代码.