Voltar à lista
Linux x86_64IPC & sincronização#29

shmget

Cria ou obtém acesso a um segmento de memória compartilhada System V.

Descrição

Parte da API de IPC System V; retorna um identificador que outros processos podem usar (com a mesma `key`) para mapear o mesmo bloco de memória física em seus próprios espaços de endereçamento via `shmat`.

Header: sys/shm.hman 2

Assinatura

int shmget(key_t key, size_t size, int shmflg);

Parâmetros

ParâmetroTipoDescrição
keykey_tChave que identifica o segmento (ou IPC_PRIVATE para um novo segmento privado).
sizesize_tTamanho do segmento em bytes, ao criar um novo.
shmflgintPermissões e flags, ex.: IPC_CREAT, IPC_EXCL.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1keykey_t
rsiargumento 2sizesize_t
rdxargumento 3shmflgint

Valor de retorno

Um identificador de segmento em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EACCES(13)
Permissão negada.
EEXIST(17)
Arquivo já existe.
EINVAL(22)
Argumento inválido.
ENOENT(2)
Arquivo ou diretório inexistente.
ENOMEM(12)
Memória insuficiente para completar a operação.
ENOSPC(28)
Sem espaço livre no dispositivo.

Relacionadas