Voltar à lista
Linux x86_64Memória#12

brk

Ajusta diretamente o limite superior (program break) do heap tradicional do processo.

Descrição

Mecanismo original de crescimento de heap do Unix, hoje usado internamente pelo alocador do glibc para alocações pequenas (alocações grandes tipicamente usam `mmap` diretamente). Raramente chamada diretamente por aplicações — use `malloc`/`sbrk(3)`.

Header: unistd.hman 2

Assinatura

int brk(void * addr);

Parâmetros

ParâmetroTipoDescrição
addrvoid *Novo endereço do program break.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1addrvoid *

Valor de retorno

A interface crua do kernel retorna o novo program break em sucesso (ou o atual se a chamada falhar); a wrapper de glibc converte isso para a convenção 0/-1 com errno ENOMEM.

Códigos de erro (errno)

ENOMEM(12)
Memória insuficiente para completar a operação.

Relacionadas