shm_attach

(PHP 4, PHP 5, PHP 7)

shm_attachShared Memory Segment anlegen oder anbinden

Beschreibung

shm_attach ( int $key [, int $memsize [, int $perm = 0666 ]] ) : resource

shm_attach() liefert eine ID über die auf ein System V Shared Memory Segment mit dem gegebenen key zugegriffen werden kann. Der erste Zugriff auf ein noch nicht existierendes Segment legt dieses mit der Größe memsize und Zugriffsberechtigungen gemäß der in perm gesetzten Bits an.

Ein zweimaliger Aufruf der Funktion shm_attach() mit dem gleichen key liefert eine andere ID, über beide IDs wird aber trotzdem auf das gleiche Shared Memory Segment zugegriffen. memsize und perm werden in diesem Fall ignoriert.

Parameter-Liste

key

Eine numerische Shared Memory Segment Id.

memsize

Die Größe des Shared Memory Segments in Bytes. Wird dieser Parameter nicht übergeben so wird der Wert aus sysvshm.init_mem in php.ini angenommen. Ist auch dieser nicht gesetzt ist der Vorgabewert 10000 Bytes. bytes.

perm

Optionale Zugriffsrechte als Bitmaske, Default ist 0666.

Rückgabewerte

Liefert ein Shared Memory Resource Handle.

Changelog

Version Beschreibung
5.3.0 Diese Funktion gibt nun eine Ressource anstatt eines Integer zurück.

Anmerkungen

Hinweis:

Diese Funktion vor PHP 5.3.0 einen Integer-Wert zurück. Dieses Verhalten kann durch einen Cast auf Integer simuliert werden falls dies aus Portabilitätsgründen nötig sein sollte.

<?php
// Temporäre Datei erstellen und Dateipfad speichern
$tmp tempnam('/tmp''PHP');

// Dateitoken-Schlüssel ermitteln
$key ftok($tmp'a');

// SHM-Resource anbinden, beachten Sie den weiter unten folgenden Cast
$id shm_attach($key);

if (
$id === false) {
    die(
'SHM-Segment kann nicht erzeugt werden');
}

// Cast auf Integer, da vor PHP 5.3.0 die Resource-ID als
// Integer zurückgegeben wurde. Der Cast simuliert dieses
// Verhalten
$id = (integer) $id;
?>

Siehe auch

  • shm_detach() - Anbindung an ein Shared Memory-Segment beenden
  • ftok() - Erzeugt aus einem Dateipfad und einem Projektbezeichner einen System V IPC Schlüssel