我只是在看glibc中malloc.c文件顶部的注释,它说:



我不明白为什么glibc代码会说Linux版本可能使用了与glibc malloc.c中的代码不同的东西?有人可以帮忙重新写一下意思吗?我以为glibc malloc()是每个Linux用于内存管理的东西?

最佳答案

之所以这样说是因为glibc中的malloc实现基于ptmalloc,而Doug Lea malloc也是基于ojit_a的实现,这些注释都来自该实现。该malloc实现已导入,并在glibc 2.3版中设为默认设置。

由于ptmalloc/Doug Lea的malloc实现是一个单独的库,您可以用来替换系统上的标准malloc(),这些注释都适用。但是在将该库引入glibc时保留了注释。

09-05 18:19
查看更多