gpt4 book ai didi

c++ - 是否有针对 getpwnam 中内存泄漏的修复或解决方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:15:08 26 4
gpt4 key购买 nike

是否有针对 getpwnam 内存泄漏的修复或解决方法?

最佳答案

getpwnam() 不会内存泄漏。实际上,后续调用将覆盖其静态内部缓冲区。

这类函数不是不可重入,因此非线程安全。保罗建议使用 getpwnam_r()这是可重入版本,可以安全地用于多线程上下文。

也就是说,内存泄漏是由那些通过 malloc() 分配内存的系统调用引起的并将应用程序的责任留给free()返回数据使用后的内存。

在这些情况下,建议使用 RAII 习惯用法,以免忘记释放分配的内存——请参阅异常安全。 std::tr1::shared_ptr<>也是一种可行的方法:对于 shared_ptr,必须向 free() 提供自定义删除器当 shared_ptr 超出范围时的原始指针。

从这个角度来看,一些危险的功能是scandir() , asprintf() , vasprintf()等等

关于c++ - 是否有针对 getpwnam 中内存泄漏的修复或解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/188591/

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