Linux - ¿Se pueden ver los punteros de un programa a otro?

 
Vista:

¿Se pueden ver los punteros de un programa a otro?

Publicado por Fran (16 intervenciones) el 25/01/2005 12:04:48
Soy programador aficionado y he llegado a una situacion resultado de mi poca información al respecto.
Quiero acceder desde un programa distinto a la información de memoria de otro programa, para ello le paso el puntero en una página de memoria compartida. Sin embargo, aunque no da error no soy capaz de visualizar el contenido.
Los punteros son identicos tanto en un programa como en otro.
¿ Un impedimiento del SO, del lenguaje?
¿ Donde está el problema?, ¿serán las colas de mensajes la única solución?
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:¿Se pueden ver los punteros de un programa a ot

Publicado por chuidiang (101 intervenciones) el 28/01/2005 08:42:12
En linux cada programa tiene su propia zona de memoria, independiente de la del otro programa. Desde un programa es imposible acceder a la memoria de otro programa (ni a posta ni por error). Gracias a eso unix es un sistema bastante fiable y con pocos cuelgues.

Sin embargo, unix da posibilidad de usar "recursos compartidos". Puedes crear una zona de memoria compartida que sea visible desde ambos programas (o más de dos). Tabmién tienes semáforos y colas de mensajes, para comunicar los programas entre sí.

En http://www.geocities.com/chuidiang/mem_comp/mem_comp.html tienes un ejemplo de como crear y usar "memoria compartida".

Se bueno.
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

RE:¿Se pueden ver los punteros de un programa a ot

Publicado por FRan (16 intervenciones) el 30/01/2005 23:09:45
Entonces parece bastante jodido intercambiar información a traves de la memoria compartida puesto que no se puede utilizar la dinamica (malloc).
Y es por lo tanto imposible de aplicar cuando intentas compartir una sola vez un dato del que no conoces el tamaño a priori.

Colas demensajes tiene toda lapinta de tener poco rendimiento, semaforos son claramente necesarios.

¿Alguna sugerencia?
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

RE:¿Se pueden ver los punteros de un programa a ot

Publicado por chuidiang (101 intervenciones) el 31/01/2005 06:43:23
Normalmente la memoria compartida es para algunaa estructuras de datos conocidas. Puedes hacer una zona de memoria lo suficientemente grande como para dejar los datos que necesites. Debes luego inventar un mecanismo para avisar de que ya hay datos y dónde están, quizás la cola de mensajes.

Las colas de mensajes no tienen por qué ser ineficientes. Date cuenta que es todo dentro del mismo ordenador y en memoria.

Se bueno.
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