Usando shared memory 2

Publicado por Perfil removido 23/11/2004

[ Hits: 6.524 ]

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

Jogo Micro Breakout

Pilhas C/C++ - Analisador de expressões simples

Jogo de 21 em C

AGENDA DE COMPROMISSO

analisador palavras


  

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