brk

BRK(2)                   Руководство программиста Linux                   BRK(2)



ИМЯ
       brk, sbrk - изменение размера сегмента данных

ОБЗОР
       #include <unistd.h>

       int brk(void *end_data_segment);

       void *sbrk(intptr_t increment);

ОПИСАНИЕ
       brk устанавливает конец сегмента данных в значение, указанное в аргументе
       end_data_segment, когда это значение является приемлимым, система
       симулирует нехватку памяти и процесс не достигает своего максимально
       возможного размера сегмента данных (см.  setrlimit(2)).

       sbrk увеличивает пространство данных программы на increment байт.  sbrk
       не является системным вызовом, он просто является обёрткой (wrapper),
       которую использует библиотека C.  Вызов sbrk с инкрементом 0 может быть
       использован, чтобы найти текущее местоположения прерывания программы.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
       В случае успеха brk возвращает ноль, а sbrk возвращает указатель на
       начало новой области. В случае ошибки возвращается -1 is и значение errno
       устанавливается в ENOMEM.

СООТВЕТСТВИЕ СТАНДАРТАМ
       BSD 4.3

       brk и sbrk не определены в стандарте на язык C и умышленно исключёны из
       стандарта POSIX.1 (см. параграфы B.1.1.1.3 и B.8.3.3).

ЗАМЕЧАНИЯ
       Некоторые системы используют разные типы для параметров sbrk().  Общими
       являются int, ssize_t, ptrdiff_t, intptr_t.  XPGv6 описывает, что эта
       функция устарела.

СМОТРИ ТАКЖЕ
       execve(2), getrlimit(2), malloc(3)

ПЕРЕВОД
       Перевёл с английского Виктор Вислобоков <corochoone@perm.ru> 2003



Linux 2.4                          2003-11-01                             BRK(2)