shm_attach
(PHP 4, PHP 5)
shm_attach — Crea o abre un segmento de memoria compartida
Descripción
$key
[, int $memsize
[, int $perm = 0666
]] )
shm_attach() devuelve un id que se puede usar para acceder
a la memoria compartida de System V con la clave dada por key, la
primera llamada crea el segmento de memoria compartida con
memsize y los permisos opcionales a nivel de bits
perm.
Una segunda llamada a shm_attach() para la misma clave dada por
key devolverá un identificador de memoria
diferente, pero ambos identificadores acceden a la misma memoria compartida
subyacente. memsize y
perm serán ignorados.
Parámetros
-
key -
Un ID numérico de segmento de memoria compartida
-
memsize -
El tamaño de la memoria. Si no se proporciona, por defecto es el valor de sysvshm.init_mem del php.ini, de otro modo es 10000 bytes.
-
perm -
Los bits de permiso opcionales. Por defecto es 0666.
Valores devueltos
Devuelve un identificador de segmento de memoria compartida.
Historial de cambios
| Versión | Descripción |
|---|---|
| 5.3.0 | Esta función ahora devuelve un recurso en vez de un integer. |
Notas
Nota:
Esta función solía devolver un valor integer antes de PHP 5.3.0. Para obtener el mismo valor de un modo portable, el valor devuelto puede ser convertido a un integer:
<?php
// Crear un fichero temporal y devolver su ruta
$tmp = tempnam('/tmp', 'PHP');
// Obtener la clave de token del fichero
$key = ftok($tmp, 'a');
// Adjuntar el recurso SHM, observe la conversión después
$id = shm_attach($key);
if ($id === false) {
die('No se pudo crear el segmento de memoria compartida');
}
// Convertir a integer, ya que antes de PHP 5.3.0 se devuelve
// el id del recurso, el cual puede ser expuesto cuando se convierte un recurso
// en un integer
$id = (integer) $id;
?>
Ver también
- shm_detach() - Desconectarse del segmento de memoria compartida
- ftok() - Convertir un nombre de ruta y un identificador de proyecto a una clave IPC de System V