#include < sys/types.h > #include < sys/ipc.h > #include < sys/sem.h > int semget ( key_t key, int nsems, int semflg )
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.
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" ); }
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).