


      BRK(2)                      (UNIX 5.0)                     BRK(2)



      NAME
           brk, sbrk - change data segment space allocation

      SYNTAX
           int brk (endds)
           char *endds;

           char *sbrk (incr)
           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.  The newly allocated
           space is set to zero.

           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:

                Such a change would result in more space being
                allocated than is allowed by a system-imposed maximum.
                [ENOMEM]

                Such a change would result in the break value being
                greater than or equal to the start address of any
                attached shared memory segment.

      RETURN VALUE
           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.

      SEE ALSO
           exec(2).










      Page 1                                         (73 A2 02MTA REV1)



