CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
brk
brk
Функция Изменяет размещение в памяти сегмента данных. Синтаксис #include<alloc.h> int brk(void * addr); Файл, содержащий alloc.h прототип Описание Функция brk используется для динамического изменения количества памяти, распределенного для сегмента данных вызываемой программы. Данное изменение производится посредством сброса программного "значения прерывания", которое является первым адресом после конца сегмента данных. Таким образом, количество отведенной памяти будет увеличено, если будет увеличено "значение прерывания". brk устанавливает "значение прерывания" соответственно параметру addr и аналогично меняет количество памяти. Если для удовлетворения запроса будет недостаточно памяти, функция завершится с ошибкой без изменения распределения памяти. Возвращаемое При успешном завершении функция brk возвращает зна- значение чение, равное 0. При ошибке возвращается значение -1 и глобальной переменной errno присваивается значение: ENOMEM - Не хватает памяти. Переносимость brk поддерживается на системах UNIX. Функция не совместима с Windows. Смотрите также coreleft, sbrk. Пример: #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; }