/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

memoria compartida

 
      Índice del Foro elrincondelc.com -> C/C++ en General
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
sheko7



Registrado: 11 Abr 2006
Mensajes: 13

MensajePublicado: 03/11/2007 10:54 pm
Título: memoria compartida

tengo que hacer una lista ligada en la que guarde nodos con la informacion de las direcciones de memoria libre dentro de un segmento de datos compartidos y tengo una duda en el siguiente codigo (se supone que mas adelante tengo que hacer varios nodos con distitas posiciones de memoria)

Código:

#include "stdio.h"
#include <stdlib.h>
#include "sys/time.h"
#include "unistd.h"
#include "sys/types.h"
#include "sys/ipc.h"
#include "sys/shm.h"
#include "sys/sem.h"
#include "errno.h"

struct free_mem {
       struct free_mem *next_free;   //puntero al siguiente nodo
       char *free;  //puntero al bloque libre
       int size;      // tamaño del bloque libre

};

char *seg_init, *disponible;
int id_seg;

main(){
struct free_mem *p;
       p = (struct free_mem *)malloc(sizeof(struct free_mem));

       //solicitamos memoria al sistema operativo. La funcion shmget retorna codigo del segmento de datos.

       if((id_seg = shmget(IPC_PRIVATE, 4096, 0660)) == -1){
        printf("Error");
                  return(-1);
       }
       // obtenemos el puntero a dicha memoria o segmento compartido

       seg_init = (char *)shmat(id_seg, (char*) 0, 0);
       disponible = (char *)seg_init;

 printf("0x%x ",seg_init);
 printf("0x%x \n",disponible);

       p->free = disponible;
       p->next_free = NULL;
}




como puedo guaradar en p->size el tamaño de segmento de datos compartido?
Volver arriba
      Índice del Foro elrincondelc.com -> C/C++ en General
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com