BRK(2)

NAZWA
brk, sbrk - zmiana wielkości segmentu danych

SKŁADNIA
#include <unistd.h>

int brk(void *end_data_segment);

void *sbrk(ptrdiff_t increment);

OPIS
brk ustawia koniec segmentu danych na wartość podaną jako argument end_data_segment, o ile wartość ta jest sensowna, system posiada dostateczną ilość pamięci oraz nie zostanie przekraczona maksymalna wielkość segmentu danych dla procesu (zobacz setrlimit(2)). sbrk zwiększa przestrzeń danych programu o wartość increment bajtów. sbrk nie jest wywołaniem systemowym, jest tylko zamiennikiem z biblioteki C. Wywołanie sbrk z increment równym 0 może służyć do znalezienia aktualnej lokalizacji punktu zakończenia programu.

WARTOŚĆ ZWRACANA
Po pomyślnym zakończeniu, brk zwraca zero, a sbrk zwraca wskaźnik do początku nowego obszaru. W wypadku błędu zwracane jest -1 a errno nadawana jest wartość ENOMEM.

ZGODNE Z
BSD 4.3 brk i sbrk nie są zdefiniowane w standardzie C i są też wyłączone ze standardu POSIX.1 (zobacz paragrafy B.1.1.1.3 i B.8.3.3).

ZOBACZ TAKŻE
execve(2), getrlimit(2), malloc(3)