table of contents
other languages
other sections
| IPC(5) | Manual do Programador Linux | IPC(5) | 
NOME¶
ipc - Mecanismo de inter-comunicação do System VSINOPSE¶
# include <sys/types.h> # include <sys/ipc.h> # include <sys/msg.h> # include <sys/sem.h> # include <sys/shm.h>
DESCRIÇÃO¶
Esta página do manual referese a implementação para o Linux do mecanismo de inter-comunicação usado no System V: fila de mensagens, sinalização por semáfaros e segmentos compartilhados de memória. Na seqüencia, a palavra resource significa uma instância de um entre muitos mecanismos.Permissão de Acessos aos Recursos¶
Para cada recurso o sistema usa uma estrutura comum do tipo struct ipc_perm para armazernar informações necessárias na determincação das permissões para executar uma operação ipc. A estrutura ipc_perm , definida pelo arquivo de cabeçalho do sistema <sys/ipc.h> , incluí os seguintes membros:0400 Leitura pelo usuário. 0200 Escrita pelo usuário.Os bits 0100, 0010 e 0001 (os bits para execução) não são usados pelo sistema. Furthermore "escrita" significa efetivamente "modificar" para um conjunto de sinalizações. O arquivo cabeçalho de sistema define as seguintes constantes simbólicas:0040 Leitura pelo grupo. 0020 Escrita pelo grupo.0004 Leitura pelos demais. 0002 Escrita pelos demais.
- IPC_CREAT
 - Criar a entrada se a chave não existe.
 
- IPC_EXCL
 - Falhar se a chave existe.
 
- IPC_NOWAIT
 - Errar se a requesição esperar muito.
 
- IPC_PRIVATE
 - Chave privada.
 
- IPC_RMID
 - Remover recurso.
 
- IPC_SET
 - Fixar opção do recurso.
 
- IPC_STAT
 - Pegar opção do recurso.
 
Fila de mensagens¶
Uma fila de mensagens é unicamente identificada por un inteiro positivo (its msqid) e possui uma estrutura de dados associada do tipo struct msquid_ds, definida em <sys/msg.h>, contendo os seguintes membros:- msg_perm
 - ipc_perm estruturas que especificam a permissão de acesso na fila de mensagem.
 
- msg_qnum
 - Número de mensagems atualmente na fila de mensagens.
 
- msg_qbytes
 - Número máximo de bytes de texto de mensagem texto permetida na fila de mensagens.
 
- msg_lspid
 - ID do processo que executou a última chamada de sistema msgsnd
 
- msg_lrpid
 - ID do processo que executou a última chamada de sistema msgrcv
 
- msg_stime
 - A hora da última chamada de sistema msgsnd
 
- msg_rtime
 - A hora da última chamada de sistema msgcv
 
- msg_ctime
 - A hora da última chamada de sistema que alterou um membro da estrutura msqid_ds
 
Conjunto sinalizador¶
Um conjunto sinalizador é unicamente identificado por um inteiro positivo (its semid) e possui uma estrutura de dados associada do tipo struct semid_ds, definida em <sys/sem.h>, contendo os seguintes membros:- sem_perm
 - ipc_perm estruturas que especificam a permissão de acesso no conjunto sinalizador.
 
- sem_otime
 - Hora da última chamada de sistema semop
 
- sem_ctime
 - Hora da última chamada de sistema semctl que alterou um membro de uma estrutura citada acima ou um dos sinais pertencentes ao conjunto.
 
- sem_nsems
 - Número de sinais no conjunto. Cada sinal de um conjunto é referenciado por um inteiro não negativo desde 0 até sem_nsems-1.
 
- semval
 - Valor do sinal: um interio não negativo.
 
- sempid
 - ID do último processo que executou uma operação sinalizada neste sinal.
 
- semncnt
 - Número de processos supendidos aguardando por semval para adicionar.
 
- semznt
 - Número de processos supendidos aguardando por semval para se transformar em zero.
 
Segmentos Compartilhados de Memória¶
Um segmento compartilhado de memória é unicamente identificado por um inteiro positivo (its shmid) e possui uma estrutura de dados associada do tipo struct shmid_ds, definida em <sys/shm.h>, contendo os seguintes membros:- shm_perm
 - ipc_perm estrutura que especifica as permissões de acesso no segmento compartilhado de memória.
 
- shm_segsz
 - Tamanho em bytes do segmento compartilhado de memória.
 
- shm_cpid
 - ID do processo que criou o segmento compartilhado de memória
 
- shm_lpid
 - ID do úlitmo processo que executou uma chamada de sistema shmat ou shmdt
 
- shm_nattch
 - Número de uniões atuais ativas para este segmento compartilhado de memória.
 
- shm_atime
 - Hora da úlitma chamada de sistema shmat
 
- shm_dtime
 - Hora da úlitma chamada de sistema shmdt
 
- shm_ctime
 - Hora da última chamada de sistema shmctl que alterou shmid_ds.
 
VEJA TAMBÉM¶
ftok(3), msgctl(2), msgget(2), msgrcv(2), msgsnd(2), semctl(2), semget(2), semop(2), shmat(2), shmctl(2), shmget(2), shmdt(2).TRADUZIDO POR LDP-BR em 21/08/2000.¶
André L. Fassone Canova <lonelywolf@blv.com.br> (tradução) Carlos Augusto Horylka <horylka@conectiva.com.br> (revisão)| 1/11/1993 | Linux 0.99.13 |