PHP - Memoria compartida

   
Vista:

Memoria compartida

Publicado por jaldonfer (9 intervenciones) el 16/02/2010 16:21:39
Hola a todos:

Tengo problemas para leer con php segmentos de memoria compartica, creados con otros procesos.

Me explico:

Tengo varios procesos ( desarrollados con C++ ) que interactuan entre si mediante segmentos de memoria compartida.
Lo que ahora quiero hacer es crear un script php que lea de dichos segmentos que ya existen.

He instalado y compilado el php con las opciones --enable-shmop y --enable-sysvsem.

El problema viene en el codigo php:

<?php

// Creacion de un segmento de memoria compartida de 100 bytes y con un
// identificador igual a 0xff3 ( CREO QUE AQUI HABRÍA QUE PONER LOS DATOS DE ORIGEN DE LA MEMORIA COMPARTIDA DE LOS PROCESOS QUE HE DESARROLLADO EN C "/bin/ls", PERO SI HAGO ESTO NO ME FUNCIONA. )
$shm_id = shmop_open(0xff3, "w", 0644, 100);
if(!$shm_id) {
echo "No se pudo crear el segmento de memoria compartida\n";
}

// Lectura de la cadena de texto de prueba
$my_string = shmop_read($shm_id, 0, $shm_size);
if(!$my_string) {
echo "No se pudo leer el segmento de memoria compartida\n";
}
echo "Los datos que contenia el segmento de memoria compartida son los
siguientes:".$my_string."\n";

}
shmop_close($shm_id);

?>


Este codigo lo he cogido de internet. Pienso que funciona bien. Pero no puedo hacer lo que pretendo.

Gracias y Saludos Cordiales !!!
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
información
Otras secciones de LWP con contenido de PHP
- Código fuente de PHP
- Cursos de PHP
- Temas de PHP
- Chat de PHP
información
Códigos de PHP
- Gráfico de barras
- Validación de usuarios
- VideoClub

RE:Memoria compartida

Publicado por leandro (27 intervenciones) el 17/02/2010 15:31:06
Es correcto el codigo.
Estas accediendo a la posicion de memoria 0xff3

para acceder al lugar de memoria que quieres c:/bin
debes tener la key de acceso a ese lugar que la obtienes usando la funcion
ftok

$key = ftok('c:/bin', 't');
$shm_id = shmop_open($key, "w", 0644, 100);

Creo que seria algo asi.
Saludos
Leandro
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