Usando shared memory 2
Publicado por Perfil removido 23/11/2004
[ Hits: 6.845 ]
Esse é o segundo programa da série usando shared memory. O primeiro programa criava uma área e esse irá usá-la, mostrando como é fácil trocar informações entre programas usando memória compartilhada, ou shared memory. Obs.: Corrijam um erro no primeiro programa: a variável char *s está declarada como global e como local. Ela deveria estar apenas como global, apaguem ela da função main.
#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <signal.h>
main()
{
   int shmid;
   struct shmid_ds buf;
   struct sigaction sig;
   char *s;
   shmid = shmget(0xFAB10, 100, 0600);
   if ( shmid == -1 )
   {
     printf("can't open shared memory\n");
     perror("shmget");
     exit(1);
   }
   if ( shmctl(shmid, IPC_STAT, &buf) != 0 )
   {
      printf("can't stat shared memory\n");
      perror("shmctl");
      exit(2);
   }
   s = (char *) shmat(shmid, 0, 0);
   if ( s == (void *)-1 )
   {
      printf("can't attach shared memory\n");
      perror("shmat");
      exit(3);
   }
   printf("%s\n", s);
   strcpy(s, "hello world");
   kill(buf.shm_cpid, SIGUSR1);
   kill(buf.shm_cpid, SIGTERM);
   shmdt(s);
   exit(0);
}
Jogo Super Mario Bros 3 (com gráficos)
Simples Criptografia de Dados em Liguagem de programação C/C++
Algoritmo de ordenação Quick Sort
Função "Partição de Inteiros" Recursiva COM Tabela Estática em C
Nenhum comentário foi encontrado.
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Instalar e Configurar a santíssima trindade (PAP) no Void Linux
NixOS + NVIDIA antiga: como sobreviver ao driver 595 (GTX 750 Ti / Maxwell)
Conhecendo o tmux: Multiplexador de Terminal
Acessando página do Syncthing fora da máquina local
[Resolvido] Meu monitor suporta 100fps. Por que o máximo é 60fps nos jogos?
OpenClaude - toda IA joga mais que neymar (0)
Novos requisitos de sistema para a versão 26.04 (4)









