Функция
Изменяет размещение сегмента данных в памяти.
Синтаксис
#include<alloc.h>
char *sbrk(int incr);
Прототип
alloc.h
Описание
Функция sbrk добавляет к завершающему значению incr байт, и соответственно выделяет память. Функция incr может быть и отрицательным, в этом случае объем выделенной памяти уменьшается. В случае если для выделения памяти недостаточно свободного места, sbrk завершается по ошибке и не производит никаких действий.
Возвращаемое значение
При успешном завершении sbrk возвращает старое значение. При ошибке, sbrk возвращает -1 и глобальной переменной errno присваивает значение:
ENOMEM - Недостаточно памяти.
Переносимость
Функция sbrk доступна в системах UNIX. Функция не совместима с Windows.
Пример
#include<stdio.h>
#include<alloc.h>
int main(void)
{
printf("Изменение выделенного объема памяти с помощью sbrk\n");
printf("Перед вызовом sbrk свободны %lu байт.\n", (unsigned long)coreleft());
sbrk(1000);
printf("После вызова sbrk свободны %lu байт.\n", (unsigned long)coreleft());
return 0;
}