// Programa semaforo1.cpp // Programa para ilustrar a utilização de semaforos. #include #include #include #include #include #include #include #define CHAVE 123 #define NUM_SEM 4 int main() { int semid; // identificador dos semáforos char *path = "nome_de_arquivo"; // string descrevendo o nome de um arquivo // criação de NUM_SEM4 semáforos // Utiliza-se path para ser a chave do conjunto de semáforos if( (semid = semget( ftok(path, (key_t) CHAVE), NUM_SEM,IPC_CREAT|IPC_EXCL|0600)) == -1 ) { // entra no if se houver falha na abertura do semáforo perror("Erro na execução de semget()"); exit(1); } printf("O semid do conjunto de semáforos é: %d \n", semid); printf("Este conjunto é identificado pela chave única: %d\n", (int) ftok(path, (key_t) CHAVE) ); exit(0); }