Usando shared memory 2

Publicado por Perfil removido 23/11/2004

[ Hits: 6.579 ]

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

S. MarioBros - Editor de fase 0.1

Método de Newton Modificado p/ Raízes Multiplas

Controle de estoque com listas

Jogo Snake (com gráficos)

Pilhas Encadeadas Detalhadamente


  

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