BRK(2) Linux Programmer s Manual BRK(2)

NAME brk, sbrk - change data segment size

SYNOPSIS #include <unistd.h>

int brk(void *end_data_segment);

void *sbrk(intptr_t increment);

DESCRIPTION brk() sets the end of the data segment to the value specified by end_data_segment, when that value is reasonable, the system does have enough memory and the process does not exceed its max data size (see setrlimit(2)).

sbrk() increments the program s data space by increment bytes. sbrk() isnt a system call, it is just a C library wrapper. Calling sbrk() with an increment of 0 can be used to find the current location of the program break.

RETURN VALUE On success, brk() returns zero, and sbrk() returns a pointer to the start of the new area. On error, -1 is returned, and errno is set to ENOMEM.

CONFORMING TO 4.3BSD; SUSv1, marked LEGACY in SUSv2, removed in POSIX.1-2001.

brk() and sbrk() are not defined in the C Standard and are deliberately excluded from the POSIX.1 standard (see paragraphs B.1.1.1.3 and B.8.3.3).

NOTES Various systems use various types for the parameter of sbrk(). Common are int, ssize_t, ptrdiff_t, intptr_t.

SEE ALSO execve(2), getrlimit(2), malloc(3)

Linux 2.4 2003-11-01 BRK(2)