SuperAPI AI 工具集

memory-safety-patterns

编程与开发

查看项目

更新于 10-16 00:30

技能介绍

用途:该技能面向系统级安全编程,提供跨语言的内存安全实现模式,适用于编写内存安全的系统代码、管理文件/套接字/内存等资源、防止释放后使用(use-after-free)与内存泄漏、实现 RAII 模式、在语言间做安全取舍,以及调试内存问题。

主要能力:按语言给出可复用的范式。C++ 部分包含 RAII(文件句柄、lock_guard、shared_lock、带回滚的事务)、智能指针(unique_ptr/shared_ptr、用 weak_ptr 打破循环引用、自定义删除器、make_unique/make_shared 最佳实践)、边界检查(vector、array、C++20 span)和防数据竞争(atomic、mutex、shared_mutex)。Rust 部分包含移动语义、借用与可变借用、生命周期标注、内部可变性(Cell/RefCell)、共享所有权(单线程 Rc、线程安全 Arc)、默认边界检查与 get 返回 Option、以及用 Arc+Mutex/RwLock/Atomic 在编译期防止数据竞争。C 部分包含 goto cleanup 清理、不透明指针 create/destroy 模式,以及 GCC/Clang 的 cleanup 属性。技能还梳理了内存缺陷类别(use-after-free、double-free、泄漏、缓冲区溢出、悬空指针、数据竞争)及对应预防手段,并给出安全谱系:C 手动管理 → C++ 智能指针 → Rust 所有权 → Go/Java 的 GC。

使用方式:作为编码参考,在写系统代码、设计资源生命周期或排查内存缺陷时按语言查阅对应模式。可配合调试工具:clang++ -fsanitize=address -g source.cpp、valgrind --leak-check=full ./program、cargo +nightly miri run、clang++ -fsanitize=thread -g source.cpp。

适用场景与限制:适合资源管理与并发安全的实现与评审、语言选型讨论。资料未提供该技能的具体安装命令、版本支持范围或收费信息,故暂未提供。