Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

Brk

CuBook05

Функция

Изменяет размещение в памяти сегмента данных.
 
Синтаксис

#include<alloc.h>
int brk(void *addr);
 
Прототип

alloc.h
 
Описание

Функция brk используется для динамического изменения количества памяти, распределенного для сегмента данных вызываемой программы. Данное изменение производится посредством сброса программного «значения прерывания», которое является первым адресом после конца сегмента данных. Таким образом, количество отведенной памяти будет увеличено, если будет увеличено «значение прерывания». Функция brk устанавливает «значение прерывания» соответственно параметру addr и аналогично меняет количество памяти. Если для удовлетворения запроса будет недостаточно памяти, функция завершится с ошибкой без изменения распределения памяти.
 
Возвращаемое значение

При успешном завершении функция brk возвращает значение, равное 0. При ошибке возвращается значение -1 и глобальной переменной errno присваивается значение:
ENOMEM - Не хватает памяти.
 
Переносимость

Функция brk поддерживается на системах UNIX. Функция не совместима с Windows.
 
Пример

#include<stdio.h>
#include<alloc.h>

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;
}
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий