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.327 ]
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).
KaiOS: A ressurreição do FirefoxOS e o fim da segregação digital
STEPMANIA: Transforme seu PC com GNU/LINUX em uma máquina Dance Dance Revolution
RealBasic 2005: Um Visual Basic multi-plataforma!
Xtraceroute: O traceroute tridimensional
Conheçam a linguagem D (saiu do forno)!
Registrando extensões no kernel com o binfmt_misc
Aventuras e desventuras com o kernel 2.6
Empacotamento de Kernel em Sistemas Debian-Based
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Meus HDs não aparecem mais no boot da placa mãe (21)
Criar entrada no GRUB para uma ISO Linux (2)
Problema em instalar o PySide6 no Ubuntu 24.04 [RESOLVIDO] (3)