BRK(2-SysV) RISC/os Reference Manual BRK(2-SysV)
NAME
brk, sbrk - change data segment space allocation
SYNOPSIS
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. 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).
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.
Printed 1/15/91 Page 1