Linux - memoria compartida en linux

 
Vista:

memoria compartida en linux

Publicado por antonio del rio (2 intervenciones) el 29/08/2001 13:16:32
Tengo el siguiente problema:Me declaro un segmento de memoria compartida,el cual manejo como una estructura,la cual tiene dentro de ella una cadena de caracteres;cuando inserto una lista de dichas estructuras al insertar la tercera me da un core por violacion de segmento.El segmento le declaro con bytes de sobra y sigue igual;la estructura tiene 2 enteros y un char cadena[40] en total 48 bytes,para insertar lo que hago es sumar el multiplo de 48 que corresponda,es decir que es usuario 2 sera 48*2 ya que empiezo en 1,¿me podriais ayudar?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:memoria compartida en linux

Publicado por Alvaro (1 intervención) el 05/09/2001 18:18:54
lo que realmente debes hacer es tratar el segmento como un arreglo, es decir, si quieres guardar 20 estructuras debes definir el segmento de largo 48*20. para recorrer este arreglo utiliza un char* el cual debe apuntar a la direccion de memoria compartida. para pasar a la siguiente posicion sumale 48.
en algoritmo seria algo asi ...
char *ptr = segmento de memoria ...
for (int i =0; i < LARGOARREGLO; i++) {
hacer_alguna_operacion_con_estructura((tu_estructura *)ptr[i * 48]);
}

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar