What do brk and sbrk stand for?
Asked Answered
S

2

9

While I know what the Unix system call brk and function sbrk do, I have no idea what they stand for. Can anyone enlighten me?

Snowberry answered 28/7, 2011 at 22:43 Comment(1)
Just do a 'man brk' and the meaning is clear from the description.Gargle
M
13

It comes from "break value".

I quote: "The change is made by resetting the process's break value and allocating the appropriate amount of space. The break value is the address of the first location beyond the end of the data segment."

(source: http://www.s-gms.ms.edus.si/cgi-bin/man-cgi?brk+2)

Mulciber answered 28/7, 2011 at 22:48 Comment(4)
come on ! "brk" is break indeed, now you still miss the "s". You're doing a cliffhanger here.Repairer
If I had to wager a guess it would be that the "s" in sbrk stands for "space", because its argument adds (or removes) <increment> space to the heap.Emissivity
@Iguananaut: S could also be Successor function, which is the math version of increment.Dickey
Or the 's' could stand for "shift" as in "shift the break" with a negative amount to decrement or shift with a positive amount to increment.Stackhouse
G
3

Just read the man page:

brk() and sbrk() change the location of the program break, which defines the end of the process's data segment (i.e., the program break is the first location after the end of the uninitialized data segment). Increasing the program break has the effect of allocating memory to the process; decreasing the break deallocates memory.

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

sbrk() increments the program's data space by increment bytes. Calling sbrk() with an increment of 0 can be used to find the current location of the program break.

Guilbert answered 2/5, 2020 at 18:10 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.