Linux x86_64IPC & sincronização#64
semget
Cria ou obtém acesso a um conjunto de semáforos System V.
Descrição
Parte da API de IPC System V para sincronização entre processos não relacionados, usando um array de semáforos identificado por chave.
Header:
sys/sem.hman 2Assinatura
int semget(key_t key, int nsems, int semflg);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| key | key_t | Chave que identifica o conjunto (ou IPC_PRIVATE). |
| nsems | int | Número de semáforos no conjunto, ao criar. |
| semflg | int | Permissões e flags, ex.: IPC_CREAT. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | keykey_t |
| rsi | argumento 2 | nsemsint |
| rdx | argumento 3 | semflgint |
Valor de retorno
Um identificador de conjunto de semáforos 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.
- ENOSPC(28)
- Sem espaço livre no dispositivo.