Usando shared memory 2

Publicado por Perfil removido 23/11/2004

[ Hits: 6.502 ]

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

Função "Temporizador" em C

Funções com número variável de argumentos

POGRAMA EM C REGISTRO DE CADASTRO ALTERAR E REMOVER CLIENTES PRODUTOS

Biblioteca math.h

Jogo da Velha com IA invencivel


  

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