brk

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

 Синтаксис          #include
                    int brk(void * addr);

 Файл, содержащий   alloc.h
 прототип

 Описание           Функция brk используется для динамического измене-
                    ния количества памяти, распределенного для сег-
                    мента данных вызываемой программы. Данное измене-
                    ние производится посредством сброса программного
                    "значения прерывания", которое является первым
                    адресом после конца сегмента данных. Таким обра-
                    зом, количество отведенной памяти будет увеличе-
                    но, если будет увеличено "значение прерывания".

                    brk  устанавливает "значение прерывания" соответст-
                    венно параметру addr и аналогично меняет количество
                    памяти.

                    Если для удовлетворения запроса будет недостаточ-
                    но памяти, функция завершится с ошибкой без изме-
                    нения распределения памяти.

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

                      ENOMEM - Не хватает памяти.

 Переносимость      brk поддерживается на системах UNIX.

 Смотрите также     coreleft sbrk

 Пример:

 #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;
 }



   pro1

     brk

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

Синтаксис          #include
                   char *sbrk(int incr);

Файл, содержащий   alloc.h
прототип

Описание           Функция sbrk добавляет к завершающему значению
                   incr байт, и соответственно выделяет память. incr
                   может быть и отрицательным, в этом случае объем
                   выделенной памяти уменьшается.

                   В случае если для выделения памяти недостаточно
                   свободного места, sbrk завершается по ошибке и не
                   производит никаких действий.

Возвращаемое       При успешном завершении sbrk возвращает старое
значение           значение. При ошибке, sbrk возвращает -1 и гло-
                   бальной переменной errno присваивает значение:

                   ENOMEM - Недостаточно памяти.

Переносимость      sbrk доступна в системах UNIX.

Смотрите также      brk

Пример:

#include
#include

int main(void)
{
   printf("Изменение выделенного объема памяти с помощью sbrk\n");
   printf("Перед вызовом sbrk свободны %lu байт.\n",
          (unsigned long)coreleft());
   sbrk(1000);
   printf("После вызова sbrk свободны %lu байт.\n",
          (unsigned long)coreleft());
   return 0;
}