linux - 是否有 malloc 变体在调用 `free()` 时将 block 清零?

标签 linux malloc customization libc

我想将系统范围内的标准 malloc(通过 LD_PRELOAD 或仅替换已安装的 libc)替换为一个将已释放 block 中所有可能的内容清零的 malloc。有谁知道现有的解决方案?

在堆的未使用部分设置零将使通过 zram-config 压缩它更加有效。由于我需要 RAM 多于 CPU,因此增加 CPU 使用率不是问题。

最佳答案

您可以修改系统上的 C 库。我不认为你会找到一个修改过的 C 库以这种方式进行内存分配,因为它是非标准的。但是修改听起来比较容易。查看您的 C 库的实现,您可以将 free 的实现替换为执行 free+memset 而不是 free 的包装器。

关于linux - 是否有 malloc 变体在调用 `free()` 时将 block 清零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18835701/

相关文章:

c - 如何开始在 Linux 中编写键盘背光驱动程序?

linux 中的 java 版本

c - 令人困惑的行为,malloc 和 free(),以及 libuv

python - os.listdir 在后台抛出错误 5(IO 错误)

linux - 如果没有响应,BASH 会杀死 wget

c - 如何检查指针是否已被释放

C — 如何使我的堆栈完全动态化?

css - Bootstrap 3 向表格中的单元格添加标签

iframe - 我可以将自定义视频 iframe 引入 Jekyll markdown 博客吗?

visual-studio-2010 - 如何快速确定 Visual Studio 2010 字体和颜色显示项名称?