glenda.party
term% ls -F
term% pwd
$home/manuals/9front/2/brk
term% cat index.txt
BRK(2)                        System Calls Manual                       BRK(2)



NAME
       brk, sbrk - change memory allocation

SYNOPSIS
       #include <u.h>
       #include <libc.h>

       int   brk(void *addr)

       void* sbrk(ulong incr)

DESCRIPTION
       Brk  sets  the system's idea of the lowest bss location not used by the
       program (called the break) to addr rounded up to the next multiple of 8
       bytes.   Locations  not  less than addr and below the stack pointer may
       cause a memory violation if accessed.

       In the alternate function sbrk, incr more bytes are added to  the  pro‐
       gram's  data  space  and  a pointer to the start of the new area is re‐
       turned.  Rounding occurs as with brk.

       When a program begins execution via exec the break is set at the  high‐
       est  location  defined by the program and data storage areas.  Ordinar‐
       ily, therefore, only programs with growing data areas need to use  brk.
       A  call  to sbrk with a zero argument returns the lowest address in the
       dynamic segment.

SOURCE
       /sys/src/libc/9sys/sbrk.c

SEE ALSO
       intro(2), malloc(2), segattach(2), segbrk(2)

DIAGNOSTICS
       These functions set errstr.

       The error return from sbrk is (void*)-1.



                                                                        BRK(2)