略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: shmop_write

2024-11-14

shmop_write

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

shmop_writeWrite data into shared memory block

说明

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

shmop_write() will write a string into shared memory block.

参数

shmop

The shared memory block identifier created by shmop_open()

data

A string to write into shared memory block

offset

Specifies where to start writing data inside the shared memory segment.

返回值

The size of the written data.

更新日志

版本 说明
8.0.0 Prior to PHP 8.0.0, false was returned on failure.
8.0.0 shmop expects a Shmop instance now; previously, a resource was expected.

范例

示例 #1 Writing to shared memory block

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

This example will write data inside $my_string into shared memory block, $shm_bytes_written will contain the number of bytes written.

参见

add a noteadd a note

User Contributed Notes 1 note

up
0
radupb at yahoo dot com
1 year 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>';

官方地址:https://www.php.net/manual/en/function.shmop-write.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3