Usando shared memory 2

Publicado por Fabio Junior Sabai 23/11/2004

[ Hits: 6.392 ]

Download shared_memory1.c




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.

  



Esconder código-fonte

#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);
}

Scripts recomendados

[GAME-2] Acerte os rortões nas janelas (jogo com gráficos)

Cálculo de logaritmo de um número por Série de Taylor em C

Listando processos via /proc/PID

Gerador de number list v2

Jogo Windows Invaders (com gráficos)


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts