Usando shared memory 2

Publicado por Perfil removido 23/11/2004

[ Hits: 6.582 ]

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

Tabela Hash feita em C

Rotina para controle de portas paralelas em C.

Jogo Super Mario Bros 3 (com gráficos)

Biblioteca dos.h

Arvore Binária


  

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