перенос функции в c - sbrk для tcmalloc - PullRequest
0 голосов
/ 15 декабря 2011

Я пытаюсь портировать tcmalloc на uclibc. Tcmalloc имеет определение для функции sbrk, которая, в свою очередь, вызывает __sbrk из libc. Uclibc, с другой стороны, не имеет функции __sbrk, но имеет sbrk.

Любые идеи о том, как я могу вызвать uclibc sbrk из tcmalloc sbrk?

1 Ответ

1 голос
/ 15 декабря 2011

sbrk - это (старый) системный вызов , но большинство распределителей памяти построены выше mmap .См. Также этот вопрос

Вы должны использовать системный вызов, а не эмулировать его.И я бы предпочел использовать mmap, а не sbrk

Выполнение системного вызова (обычно mmap) - это единственный способ получить больше памяти из ядра Linux .

С точки зрения приложения (или библиотеки) системный вызов является атомарным (в основном это одиночная машинная инструкция, такая как SYSCALL, SYSENTER, int 0x80 и т. Д.).

...