我想将系统范围内的标准 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/