Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ brk(2) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

exec(2)

shmop(2)

ulimit(2)

end(3C)



brk(2)                    SYSTEM CALLS                     brk(2)



NAME
     brk, sbrk - change data segment space allocation

SYNOPSIS
     #include <unistd.h>

     int brk(void *endds);

     void *sbrk(int incr);

DESCRIPTION
     brk and sbrk are used to change dynamically  the  amount  of
     space  allocated for the calling process's data segment [see
     exec(2)].  The change is made  by  resetting  the  process's
     break  value and allocating the appropriate amount of space.
     The break value is the address of the first location  beyond
     the  end of the data segment.  The amount of allocated space
     increases as the break  value  increases.   Newly  allocated
     space is set to zero.  If, however, the same memory space is
     reallocated to the same process its contents are undefined.

     brk sets the break value to endds and changes the  allocated
     space accordingly.

     sbrk adds incr bytes to the  break  value  and  changes  the
     allocated space accordingly.  incr can be negative, in which
     case the amount of allocated space is decreased.

     brk and sbrk will fail without  making  any  change  in  the
     allocated space if one or more of the following are true:

          ENOMEM       Such a change would result in  more  space
                       being  allocated  than  is  allowed by the
                       system-imposed maximum process  size  [see
                       ulimit(2)].

          EAGAIN       Total amount of  system  memory  available
                       for  a  read  during  physical  IO is tem-
                       porarily  insufficient   [see   shmop(2)].
                       This  may  occur  even  though  the  space
                       requested was less than the system-imposed
                       maximum process size [see ulimit(2)].

SEE ALSO
     exec(2), shmop(2), ulimit(2), end(3C).

DIAGNOSTICS
     Upon successful completion, brk returns a  value  of  0  and
     sbrk  returns the old break value.  Otherwise, a value of -1
     is returned and errno is set to indicate the error.





                                                                1



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026