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

semctl

Executa operações de controle sobre um conjunto de semáforos System V (consulta, ajuste de valor, remoção).

Descrição

Inclui GETVAL/SETVAL (ler/definir o valor de um semáforo), IPC_STAT/IPC_SET e IPC_RMID.

Header: sys/sem.hman 2

Assinatura

int semctl(int semid, int semnum, int cmd, union semun ...);

Parâmetros

ParâmetroTipoDescrição
semidintIdentificador do conjunto de semáforos.
semnumintÍndice do semáforo dentro do conjunto, quando aplicável ao comando.
cmdintGETVAL, SETVAL, IPC_STAT, IPC_SET, IPC_RMID, entre outros.
...union semunArgumento opcional, cujo tipo depende de `cmd`.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1semidint
rsiargumento 2semnumint
rdxargumento 3cmdint
r10argumento 4...union semun

Valor de retorno

Depende de `cmd`; -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).
ERANGE(34)
Resultado fora de faixa representável.

Relacionadas