Где я могу найти код для malloc, который мой gcc-компилятор сейчас использует? Я действительно хочу написать свою собственную функцию malloc, которая будет немного отличаться от оригинальной. Я знаю, что могу использовать hooks et all, но я хочу увидеть реальный код.
Код для malloc и бесплатный
Ответ 1
Интерфейс POSIX malloc определен здесь.
Если вы хотите узнать, как библиотека C в GNU/Linux (glibc) реализует malloc
, перейдите и получите исходный код из http://ftp.gnu.org/gnu/glibc/ и посмотрите файл malloc/malloc.c
.
Существует также базовая документация Memory Allocator от Doug Lea, которая описывает теорию m ( emory) alloc (ator) (прочитайте это с уверенностью, а затем решите, действительно ли вам нужно реализовать свой собственный malloc).
Ответ 2
Посмотрите соответствующий выпуск glibc на старый сайт выпуска 1 или здесь. Например, если вы используете glib 2.9, он находится в этом архиве. Найдите файл malloc/malloc.c
.
Вы увидите, что это не тривиальный фрагмент кода библиотеки.
1 Похоже, что они изменили структуру каталогов после glibc-2.9.
Ответ 3
malloc()
должен находиться в glibc.
Дополнительная литература
Многопоточность
Распределение С++ трюки [Видео]
Ответ 4
Я могу просмотреть исходный код в Интернете здесь.