next up previous
Next: Estrutura associada a uma Up: Memória Compartilhada Previous: Princípio da memória compartilhada

A Função shmget()

 #include <sys/ipc.h>
 #include <sys/shm.h>

 int shmget(key_t key, int size, int shmflg);

Valor de retorno: o identificador do segmento de memória compartilhada shmid, ou -1 em caso de erro.

Esta função é encarregada de buscar o elemento especificado (pela chave de acesso key) na estrutura shmid_ds e, caso esse elemento não exista, de criar um novo segmento de memória compartilhada, com tamanho em bytes igual a size. Além da chave de acesso key e do tamanho do segmento (size), um terceiro argumento (shmflg) é empregado para definir os direitos de acesso ao segmento criado.

O argumento key pode conter os seguintes valores:

O argumento shmflg é bastante semelhante ao semflg utilizado para semáforos (ver seção 5.3. Este flag corresponde à combinação de diferentes constantes pré-definidas através do operador lógico OU). O argumento shmflg permite assim a especificação dos direitos de acesso ao segmento de memória compartilhada criado. As possíveis constantes a serem combinadas são: IPC_CREAT, IPC_EXCL similares àquelas dos semáforos e, SHM_R (=0400) e SHM_W(=200) que dão o direito de leitura e escrita ao segmento. Note que a combinação destas útimas constantes pode ser igualmente representada pelo octal 0600.

Existe muita semelhança entre os direitos de acesso aos segmentos criados e aos arquivos no sistema UNIX através da noção de direitos de leitura e escrita para o usuário, para o grupo e para outros. O número octal definido de maneira similar àquela mostrada em 1.4.2 pode ser utilizado.



Subsections
next up previous
Next: Estrutura associada a uma Up: Memória Compartilhada Previous: Princípio da memória compartilhada
Celso Alberto Saibel Santos 2000-11-14