RAII(Resource Acquisition Is Initialization,资源获取即初始化)是源自 C++ 的一种模式,它把资源的清理自动绑定到对象的生命周期上。C 语言没有析构函数来自动完成这件事,因此类似的清理保证只能手动模拟,例如使用 `goto` 语句跳转到函数末尾统一的清理段,在那里释放所有已获取的资源。一些编译器还支持非标准的 `__attribute__((cleanup))` 扩展,可以在变量离开作用域时自动调用指定的函数。这两种方法的目的都是降低风险,避免在函数多个可能的退出路径上忘记释放资源。