IPCMSG: Comunicação inter-processos sem magia negra
A biblioteca IPCMSG foi criada para facilitar o desenvolvimento de programas que utilizam comunicação inter-processo. Nesse artigo aprenderemos, de forma prática, como usar essa biblioteca em seus códigos C/C++.
[ Hits: 23.590 ]
Por: Alessandro de Oliveira Faria (A.K.A. CABELO) em 20/10/2005 | Blog: http://assuntonerd.com.br
total 0 drwxr-x--- 5 cabelo users 120 2005-09-03 14:44 exemplo drwxr-x--- 2 cabelo users 200 2005-09-03 14:44 libPara compilar e instalar a biblioteca, entre na pasta lib e execute o comando make. Após a compilação, execute o comando make install como super-usuário:
total 0 drwxr-x--- 2 cabelo users 112 2005-09-03 14:44 comunica drwxr-x--- 2 cabelo users 112 2005-09-03 14:44 semaforo drwxr-x--- 2 cabelo users 112 2005-09-03 14:44 tcpPara não tornar muito extenso este artigo, irei explicar apenas a comunicação inter-processo através da fila de mensagem.
total 8 -rw-r----- 1 cabelo users 779 2005-09-03 14:44 cliente.cpp -rw-r----- 1 cabelo users 1100 2005-09-03 14:44 server.cppPara compilar, use o compilador g++ como no exemplo abaixo, assim obtendo os 2 binários para execução dos nossos testes:
total 88 -rwxr-xr-x 1 cabelo users 37965 2005-09-03 15:01 cliente -rw-r----- 1 cabelo users 779 2005-09-03 14:44 cliente.cpp -rwxr-xr-x 1 cabelo users 38072 2005-09-03 15:01 server -rw-r----- 1 cabelo users 1100 2005-09-03 14:44 server.cppAntes de executar os nossos programas teste, execute o comando ipcs:
- Segmentos da memória compartilhada - chave shmid proprietario perms bytes nattch status 0x00000000 851969 cabelo 600 262144 1 dest 0x00000000 917506 cabelo 600 393216 2 dest 0x00000000 950275 cabelo 600 196608 2 dest 0x00000000 4292612 cabelo 600 393216 2 dest 0x00000000 4325381 cabelo 600 196608 2 dest 0x00000000 4358150 cabelo 666 57600 1 dest ------ Arrays de semáforos ------ chave semid proprietario perms nsems ----- Filas de mensagens ------ chave msqid proprietario perms bytes usados mensagensReparem que não existe nenhuma fila de mensagem criada até o presente momento. Agora execute o programa server e veja o que acontece ao executar o ipcs em outro terminal:
- Segmentos da memória compartilhada - chave shmid proprietario perms bytes nattch status 0x00000000 851969 cabelo 600 262144 1 dest 0x00000000 917506 cabelo 600 393216 2 dest 0x00000000 950275 cabelo 600 196608 2 dest 0x00000000 4292612 cabelo 600 393216 2 dest 0x00000000 4325381 cabelo 600 196608 2 dest 0x00000000 4358150 cabelo 666 57600 1 dest ------ Arrays de semáforos ------ chave semid proprietario perms nsems ----- Filas de mensagens ------ chave msqid proprietario perms bytes usados mensagens 0x0000000d 65537 cabelo 666 0 0Agora vamos executar o programa cliente (em outro terminal) para efetuar a comunicação entre os dois processos criados (o server e o cliente).
MOVIX: a fantástica mini-distribuição Multimídia
NagiosVision: Tem humanos perto do seu servidor
Conectando com Bco Interbase/Firebird em Java
Compile programas para o PlayStation 3 em PC de 32 bits
STEPMANIA: Transforme seu PC com GNU/LINUX em uma máquina Dance Dance Revolution
Aplicando o patch do grsecurity no kernel 2.4
Mitigação - O que é e quando é "seguro" desabilitar
Gerência e criação de módulos do kernel
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Debian 13 Trixie para Iniciantes
Convertendo pacotes DEB que usam ZSTD (Padrão Novo) para XZ (Padrão Antigo)
Rust é o "C da nossa geração"? (2)
O que você está ouvindo agora? [2] (212)