There are two main system calls to manipulate memory, namely brk and sbrk.
Both brk and sbrk change the amount of space allocated for the calling process's data segment.
They change the process's break value and the operating system adjusts their allocated amount of space accordingly, which may be an increase or a decrease or no change.
The break value is the address of the first memory location after the end of the data segment for the process.
brk and sbrk are very rarely used because the malloc, calloc, and free library functions are adequate for allocating and freeing memory space; brk and sbrk should not be used in a program that also uses mallocs/calloc and free.
A program that uses brk and sbrk. Note that if sbrk is passed an increase of 0 bytes, it can be used as a query function to determine the current break value.