sbrk(2) DG/UX 5.4R3.00 sbrk(2)
NAME
sbrk - change data segment space allocation
SYNOPSIS
#include <unistd.h>
void *sbrk(int increment);
where:
increment The signed increment by which to change the data area
size
DESCRIPTION
The sbrk() system call dynamically changes the amount of space
allocated for the calling process's data segment; see exec(2). The
change is made by adding increment to the process's current break
value and allocating or deallocating the appropriate amount of space.
The break value is the address of the first byte beyond the end of
the data segment. The amount of allocated space increases as the
break value increases. If increment is positive, space is allocated,
and any newly allocated pages will be initialized with zero bytes;
that is, if these addresses are read before they are written, the
contents will be zero. If increment is negative, space is
deallocated from the data segment. The contents of the addresses
from the new break value to the prior break value become undefined.
There is a maximum possible break value for a process; this value may
be obtained by calling the ulimit(2) function. There is also a
program-dependent minimum break value for a process; this minimum is
greater than or equal to the address of the first byte in the data
segment, and less than or equal to the program's initial break value.
The sbrk() call will fail without making any change in the allocated
space if an error occurs.
ACCESS CONTROL
No access check is made.
RETURN VALUE
Upon successful completion, sbrk() returns the previous break value.
Otherwise, it returns the value (void *) -1, and sets errno to
indicate an error.
DIAGNOSTICS
Under the following conditions, sbrk() fails and sets errno to:
ENOMEM if the change would allocate more space than is
allowed by a system-imposed maximum (see ulimit(2)).
ENOMEM if the change would allocate more space than is
allowed by the current data resource limit (see
getrlimit(2)).
ENOMEM if the change would make the break value greater than
Licensed material--property of copyright holder(s) 1
sbrk(2) DG/UX 5.4R3.00 sbrk(2)
or equal to the start address of an attached shared
memory segment (see shmat(2)).
EFAULT if the change would make the break value less than the
system-imposed minimum.
EAGAIN if the change would allocate more space than the
available physical memory and swap space.
EAGAIN if the MCLFUTURE memory locking option is in effect
for the calling process (see memcntl(2)), and the
system-imposed limit on space locked into physical
memory would be exceeded.
SEE ALSO
exec(2), getrlimit(2), memcntl(2), ulimit(2).
Licensed material--property of copyright holder(s) 2