Skip to content
Snippets Groups Projects
brk.c 648 B
Newer Older
Paul Sajna's avatar
Paul Sajna committed
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
Paul Sajna's avatar
Paul Sajna committed

int main(void) {
    void * current = sbrk(0);
    ERROR_IF(sbrk, current, == (void *)-1);

    // sbrk increment and report previous brk
    void * prev = current;
    current = sbrk(4096);
    ERROR_IF(sbrk, current, != prev);

    // sbrk report current break
    prev = current;
    current = sbrk(0);
    ERROR_IF(sbrk, current, != (void*)((uintptr_t)prev + 4096));

    // brk set break to new value
    int status = brk((void*)((uintptr_t)current + 4096));
    ERROR_IF(brk, status, == -1);
    UNEXP_IF(brk, status, != 0);
Paul Sajna's avatar
Paul Sajna committed
}