Я сделал, чтобы таможенный распределитель функционировал который использование sbrk (), чтобы получить память. Как я выпускаю эту память, когда она больше не необходима?
Есть ли функция, эквивалентная свободному () для malloc ()?
или я должен использовать кирпич (), чтобы установить конец сегмента данных?
Вам нужно использовать BRK
или SBRK
снова, чтобы уменьшить.
В конце концов единственный способ изменить объем памяти (кроме MMAP, подобных SESCalls), является увеличение или уменьшение кучи, поэтому вы перемещаете его с SBRK
или БРК
И вы двигаете его с помощью БРК
или SBRK
с отрицательным приращением.
Не используйте brk
и sbrk
. Практически невозможно узнать, какие библиотечные функции могут вызвать malloc
, и они могут измениться со временем, так что даже если ваша программа работает сейчас, она может сломаться, когда кто-нибудь обновит libc. Они были исключены из POSIX по очень веской причине.