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

shmctl

Executa operações de controle sobre um segmento de memória compartilhada System V (consulta, ajuste, remoção).

Descrição

Inclui IPC_STAT (consultar metadados), IPC_SET (ajustar permissões/dono) e IPC_RMID (marcar para remoção quando o último processo se desanexar).

Header: sys/shm.hman 2

Assinatura

int shmctl(int shmid, int cmd, struct shmid_ds * buf);

Parâmetros

ParâmetroTipoDescrição
shmidintIdentificador do segmento.
cmdintIPC_STAT, IPC_SET, IPC_RMID, entre outros.
bufstruct shmid_ds *Estrutura de entrada/saída com os metadados do segmento.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1shmidint
rsiargumento 2cmdint
rdxargumento 3bufstruct shmid_ds *

Valor de retorno

Depende de `cmd`; em geral 0 ou um valor informativo em sucesso, -1 em erro, com errno definido.

Códigos de erro (errno)

EACCES(13)
Permissão negada.
EIDRM(43)
Identificador removido (IPC System V).
EINVAL(22)
Argumento inválido.
EPERM(1)
Operação não permitida (falta de privilégio).

Relacionadas