我只是在看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时保留了注释。