shm_attach
(PHP 4, PHP 5, PHP 7)
shm_attach — Creates or open a shared memory segment
说明
$key
[, int $memsize
[, int $perm
= 0666
]] ) : resource
shm_attach() returns an id that can be used to access
the System V shared memory with the given key
, the
first call creates the shared memory segment with
memsize
and the optional perm-bits
perm
.
A second call to shm_attach() for the same
key
will return a different shared memory
identifier, but both identifiers access the same underlying
shared memory. memsize
and
perm
will be ignored.
参数
-
key
-
A numeric shared memory segment ID
-
memsize
-
The memory size. If not provided, default to the sysvshm.init_mem in the php.ini, otherwise 10000 bytes.
-
perm
-
The optional permission bits. Default to 0666.
返回值
Returns a shared memory segment identifier.
注释
Note:
This function used to return an integer value prior to PHP 5.3.0. To achieve the same value in a portable manner, the return value can be cast to an integer like:
<?php
// Create a temporary file and return its path
$tmp = tempnam('/tmp', 'PHP');
// Get the file token key
$key = ftok($tmp, 'a');
// Attach the SHM resource, notice the cast afterwards
$id = shm_attach($key);
if ($id === false) {
die('Unable to create the shared memory segment');
}
// Cast to integer, since prior to PHP 5.3.0 the resource id
// is returned which can be exposed when casting a resource
// to an integer
$id = (integer) $id;
?>
参见
- shm_detach() - Disconnects from shared memory segment
- ftok() - Convert a pathname and a project identifier to a System V IPC key