PHP 7.3.32 Released!

shmop_write

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

shmop_writeSchreibt Daten in einen gemeinsamen Speicherbereich

Beschreibung

shmop_write(Shmop $shmop, string $data, int $offset): int

shmop_write() schreibt Daten in einen gemeinsamen Speicherbereich.

Parameter-Liste

shmop

Der Bezeichner für den gemeinsamen Speicherbereich, der von shmop_open() erzeugt wurde.

data

Ein String, der in den gemeinsamen Speicherbereich geschrieben werden soll.

offset

Gibt an, von welcher Position ab Daten in den gemeinsamen Speicherbereich geschrieben werden sollen.

Rückgabewerte

Die Länge der geschriebenen Daten data oder false, falls ein Fehler auftrat.

Changelog

Version Beschreibung
8.0.0 Vor PHP 8.0.0 wurde bei einem Fehler false zurückgegeben.
8.0.0 shmop erwartet nun eine Shmop-Instanz; vorher wurde eine resource erwartet.

Beispiele

Beispiel #1 In den gemeinsamen Speicherbereich schreiben

<?php
$shm_bytes_written 
shmop_write($shm_id$my_string0);
?>

In diesem Beispiel werden die Daten der Variablen $my_string in den gemeinsamen Speicherbereich geschrieben. Die Variable $shm_bytes_written enthält die Anzahl der geschriebenen Bytes.

Siehe auch

  • shmop_read() - Liest Daten aus einem gemeinsamen Speicherbereich

add a note add a note

User Contributed Notes 1 note

up
0
radupb at yahoo dot com
10 months ago
I guess pack-unpack are the handy functions for encoding/decoding data as/from a binary string for shmop_write/shmop_read. Example:

$format='LLLLSSCCCC';  //data format for pack
$key=1;
if( !($shmid=shmop_open($key,'n',0660,30)) )
  die('shmop_open failed.');

//my data to encode:
$hd=array('ALIVE1'=>1,'ALIVE2'=>2,'ALIVE3'=>3,'ALIVE4'=>4,
      'CRTPTR'=>5,'CRTSEQ'=>6,
      'CTW'=>7,'LOCK'=>8,'PLAY'=>9,'MISS'=>10
);

$tmp=pack( $format, $hd['ALIVE1'],$hd['ALIVE2'],$hd['ALIVE3'],$hd['ALIVE4'],  $hd['CRTPTR'],$hd['CRTSEQ'],$hd['CTW'],$hd['LOCK'],$hd['PLAY'],$hd['MISS'] );

if( ($w=shmop_write($shmid,$tmp,0))!=24 )
  die('write error $w='.$w);

And reading from some other process:
$key=1;
if( !($shmid=shmop_open($key,'w',0,0)) )
  die('shmop_open failed.');

$formatR='L4ALIVE/SCRTPTR/SCRTSEQ/CCTW/CLOCK/CPLAY/CMISS'; //data format for unpack

$hd=unpack( $formatR, shmop_read( $shmid,0,24) );
echo'hd:<pre>';print_r($hd);echo'</pre>';
To Top