Функция Изменяет размещение в памяти сегмента данных.
Синтаксис #include
int brk(void * addr);
Файл, содержащий alloc.h
прототип
Описание Функция brk используется для динамического измене-
ния количества памяти, распределенного для сег-
мента данных вызываемой программы. Данное измене-
ние производится посредством сброса программного
"значения прерывания", которое является первым
адресом после конца сегмента данных. Таким обра-
зом, количество отведенной памяти будет увеличе-
но, если будет увеличено "значение прерывания".
brk устанавливает "значение прерывания" соответст-
венно параметру addr и аналогично меняет количество
памяти.
Если для удовлетворения запроса будет недостаточ-
но памяти, функция завершится с ошибкой без изме-
нения распределения памяти.
Возвращаемое При успешном завершении функция brk возвращает зна-
значение чение, равное 0.
При ошибке возвращается значение -1 и глобальной
переменной errno присваивается значение:
ENOMEM - Не хватает памяти.
Переносимость brk поддерживается на системах UNIX.
Смотрите также coreleftsbrk
Пример:
#include
#include
int main(void)
{
char *ptr;
printf("Изменение объема выделенной памяти с помощью brk");
ptr = malloc(1);
printf("Перед вызовом brk() свободно %lu байт\n",coreleft());
brk(ptr+1000);
printf("После вызова brk() свободно %lu байт\n",coreleft());
return 0;
}