mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

BRK(2)                                                   BRK(2)

НАЗВАНИЕ 
        brk, sbrk - изменение размера сегмента данных

СИНТАКСИС 
        int brk (endds)
        char *endds;
        
        char *sbrk (incr)
        int incr;

ОПИСАНИЕ 
        Системные вызовы brk и sbrk используются для динамичес-
        кого изменения количества оперативной памяти,  выделен-
        ной  под  сегмент данных процесса, делающего вызов [см.
        exec(2)]. Это изменение достигается передвижением верх-
        ней границы сегмента данных и выделением  соответствую-
        щего  количества памяти. Далее под верхней границей по-
        нимается адрес сразу за концом сегмента данных.  Увели-
        чение  этого адреса соответствует увеличению количества
        памяти, выделенной процессу.  Вновь  выделенная  память
        заполнена нулями. Однако, если некоторая область памяти
        выделяется процессу повторно, ее содержимое будет неоп-
        ределенным.

        Системный  вызов brk устанавливает верхнюю границу рав-
        ной endds и соответственно изменяет количество  памяти,
        выделенной процессу.

        Системный  вызов  sbrk  передвигает  верхнюю границу на
        incr байт и соответственно изменяет количество  памяти,
        выделенной  процессу.  Значение incr может быть отрица-
        тельным, в этом  случае  количество  выделенной  памяти
        уменьшается.

        Верхняя граница сегмента данных не передвигается и сис-
        темные вызовы brk и sbrk завершаются неудачей, если вы-
        полнено хотя бы одно из следующих условий:

        [ENOMEM]    Запрашиваемое действие привело бы к наруше-
                    нию системного ограничения на размер данно-
                    го процесса [см. ulimit(2)].

        [EAGAIN]    Общее количество системной памяти,  предос-
                    тавленной   для  физического  ввода/вывода,
                    временно оказалось недостаточным. Это может
                    случиться, даже если системное  ограничение
                    на размер процесса не нарушается.

СМ. ТАКЖЕ 
        exec(2), ulimit(2), end(3C).

ДИАГНОСТИКА 
        При успешном завершении brk возвращает 0, а sbrk - ста-
        рый адрес конца программы; в случае ошибки возвращается
        -1, а переменной errno присваивается код ошибки.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк