Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ brk(2) — Dell System V Release 4 Issue 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

exec(2)

shmop(2)

ulimit(2)

end(3C)



brk(2)                           UNIX System V                           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 temporarily 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.







10/89                                                                    Page 1





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