Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ brk(S) — System V/386 Software Development System 3.2.2b

Media Vault

Software Library

Restoration Projects

Artifacts Sought



     BRK(S)                    UNIX System V                    BRK(S)



     Name
          brk, sbrk - change data segment space allocation

     Syntax
          int brk (endds)
          char *endds;

          char *sbrk (incr)
          int incr;

     Description
          The brk and sbrk system calls are used to change dynamically
          the amount of space allocated for the calling process's data
          segment (see exec(S)).  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.

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

          The sbrk system call 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.

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

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

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

     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(S), shmop(S), ulimit(S), end(S).

     Standards Conformance
          brk and sbrk are conformant with:
          The X/Open Portability Guide II of January 1987.

                                                (printed 6/20/89)



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