Sistemas Operacionais

Chamada de Sistema: semget()


SINÓPSE

#include < sys/types.h >
#include < sys/ipc.h >
#include < sys/sem.h >

int semget ( key_t key, int nsems, int semflg )

 

DESCRIÇÃO

A chamada de sistema semget é usada para traduzir uma chave para um ID de um semáforo. semget pode também ser usada para criar um novo conjunto de semáforos se um ainda não existe e se o semflag contém o valor correto indicando essa criação. O valor retornado por semget é o ID do conjunto de semáforos para ser usado em outras chamadas de sistema envolvendo esse conjunto. É importante armazenar esse ID para uso nas chamadas semop e semctl. Se semget falha, o valor -1 será retornado.

nsems indica o número de semáforos para serem criados no conjunto. Para os experimentos, o conjunto de semáforos contém apenas um semáforo.

Para criar um conjunto de semáforos se ele não existe, colocar em semflag o valor IPC_CREAT.

Veja o Experimento #5 para maiores informações sobre semáforos.

 

EXEMPLO

Para criar um conjunto de semáforos com um semáforo só e com a chave 0x2222:

#include < sys/types.h >
#include < sys/ipc.h >
#include < sys/sem.h >

int sem_id;
int sem_key;

...

sem_key = 0x2222;

...

if( (sem_id = semget( sem_key, 1, IPC_CREAT )) == -1 ) {
	perror( "semget" );
}

 

VEJA TAMBÉM

semctl semop


DISPONÍVEL

AIX, Linux, Lynx, SunOS e Solaris


Para maiores informações sobre este comando, consulte a página do manual de seu sistema operacional (comando man).