Sistemas Operacionais

Chamada de Sistema: semctl()


SINÓPSE

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

int semctl( int semid, int semnun, int cmd, union semun arg )

 

DESCRIÇÃO

A chamada de sistema semctl() permite que operações sejam executadas sobre o conjunto de semáforos especificado pelo semid. A operação a ser executada é especificada por cmd. semnun indica um determinado semáforo dentro do conjunto sobre o qual a operação será executada, se apropriado, ou seja, se existir. arg é um argumento opcional que pode ou não ser usado.

A união semun é assim definida:

union semun {
	int val;		/* usado apenas para SETVAL */
	struct semid_ds *buf;	/* para IPC_STAT e IPC_SET */
	ushort *array;		/* usado para GETALL e SETALL */
};

 

Veja o Experimento #5 e as respectivas páginas do manual para maiores informações sobre semáforos. No experimento, a única operação realizada é a operação de remoção, que é especificada pelo comando IPC_RMID.

 

EXEMPLO

Para remover o semáforo com ID 10:

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

int sem_id;

...

sem_id = 10;

...

if( semctl( sem_id, 0, IPC_RMID, 0) != 0 ) {
	perror( "semctl" );
}

 

VEJA TAMBÉM

semget 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).