All rights reserved. The Berkeley software License Agreement
specifies the terms and conditions for redistribution.
@(#)brk.2 6.1 (Berkeley) 05/09/85
#include <sys/types.h>caddr_t brk(addr) caddr_t addr;
caddr_t sbrk(incr) int incr;
In the alternate function sbrk , incr more bytes are added to the program's data space and a pointer to the start of the new area is returned.
When a program begins execution via execve the break is set at the highest location defined by the program and data storage areas. Ordinarily, therefore, only programs with growing data areas need to use sbrk .
The getrlimit (2) system call may be used to determine the maximum permissible size of the data segment; it will not be possible to set the break beyond the rlim_max value returned from a call to getrlimit , e.g. \*(lqetext + rlp\(->rlim_max.\*(rq (See end (3) for the definition of etext .)
15 [ENOMEM] The limit, as set by setrlimit (2), was exceeded.
15 [ENOMEM] The maximum possible size of a data segment (compiled into the system) was exceeded.
15 [ENOMEM] Insufficient space existed in the swap area to support the expansion.