Extend the process’ data space by a given increment.
Include
None
Prototype
void * sbrk(int incr);
Argument
incr
|
number of characters to increment/decrement |
Return Value
Return the start of the new space allocated or ‘-1’ for errors.
Remarks
sbrk() adds incr characters to the break value and
changes the allocated space accordingly. incr can be negative, in
which case the amount of allocated space is decreased.
sbrk() is used to dynamically change the amount of space allocated for the
calling process’s data segment. 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. The amount of allocated space increases as the
break value increases.
This is a helper function called by the Standard C Library function
malloc().
Default Behavior
If the global variable __curbrk is zero, the function calls
brk() to initialize the break value. If brk() returns -1,
so does this function.
If the incr is zero, the current value of the global
variable __curbrk is returned.
If the incr is non-zero, the function checks that the
address (__curbrk + incr) is less than the end
address of the heap. If it is less, the global variable __curbrk is updated
to that value and the function returns the unsigned value of __curbrk.
Otherwise, the function returns -1.
See the of brk().
File
sbrk.c