I'm working on a memory allocator it's going to run in a VM so I need it to replicate the sbrk function so that it can work with a static block of memory.
I've read the man entry
My problem is how does this translate to a stack piece of memory? For example if the memory block is at 0x0f000 and the heap is empty I would assume the sblk(0) would return 0x0f000 and then if I call sblk(size) it will return 0x0f000 + size or -1 for out of memory? Is this basically correct? I'm also thinking I need a way to track the end point of my memory block so I don't exceed it.DESCRIPTION
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 loca‐
tion of the program break.
Hopefully someone can confirm or point me in the right direction