]> git.lizzy.rs Git - plan9front.git/blob - sys/man/2/brk
f916a6877ef8a74eed3a3b2b7d9ea1c7abe99c65
[plan9front.git] / sys / man / 2 / brk
1 .TH BRK 2
2 .SH NAME
3 brk, sbrk \- change memory allocation
4 .SH SYNOPSIS
5 .B #include <u.h>
6 .br
7 .B #include <libc.h>
8 .PP
9 .ta \w'\fLvoid* 'u
10 .B
11 int     brk(void *addr)
12 .PP
13 .B
14 void*   sbrk(ulong incr)
15 .SH DESCRIPTION
16 .I Brk
17 sets the system's idea of the lowest bss location not used by the program
18 (called the break)
19 to
20 .I addr
21 rounded up to the next multiple of 8 bytes.
22 Locations not less than
23 .I addr
24 and below the stack pointer
25 may cause a memory violation if accessed.
26 .PP
27 In the alternate function
28 .IR sbrk ,
29 .I incr
30 more bytes are added to the
31 program's data space and a pointer to the
32 start of the new area is returned.
33 Rounding occurs as with
34 .IR brk .
35 .PP
36 When a program begins execution via
37 .I exec
38 the break is set at the
39 highest location defined by the program
40 and data storage areas.
41 Ordinarily, therefore, only programs with growing
42 data areas need to use
43 .IR brk .
44 A call to
45 .I sbrk
46 with a zero argument returns the lowest address
47 in the dynamic segment.
48 .SH SOURCE
49 .B /sys/src/libc/9sys/sbrk.c
50 .SH SEE ALSO
51 .IR intro (2),
52 .IR malloc (2),
53 .IR segattach (2),
54 .IR segbrk (2)
55 .SH DIAGNOSTICS
56 These functions set
57 .IR errstr .
58 .PP
59 The error return from
60 .I sbrk
61 is
62 .BR (void*)-1 .