Description
int
shmop_open ( int key, string flags, int mode, int size )
shmop_open() can create or open a shared memory block.
shmop_open() takes 4 parameters: key, which is the
system's id for the shared memory block, this parameter can be passed
as a decimal or hex. The second parameter are the flags that you can use:
"a" for access (sets SHM_RDONLY for shmat)
use this flag when you need to open an existing shared memory
segment for read only
"c" for create (sets IPC_CREATE)
use this flag when you need to create a new shared memory segment
or if a segment with the same key exists, try to open it for read
and write
"w" for read & write access
use this flag when you need to read and write to a shared memory
segment, use this flag in most cases.
"n" create a new memory segment (sets IPC_CREATE|IPC_EXCL)
use this flag when you want to create a new shared memory segment
but if one already exists with the same flag, fail. This is useful
for security purposes, using this you can prevent race condition
exploits.
The third parameter is the mode, which are the permissions that you
wish to assign to your memory segment, those are the same as permission
for a file. Permissions need to be passed in octal form ex. 0644.
The last parameter is size of the shared memory block you wish to create
in bytes.
Note:
Note: the 3rd and 4th should be entered as 0 if you are opening an
existing memory segment. On success shmop_open() will
return an id that you can use to access the shared memory segment
you've created.
Example 1. Create a new shared memory block <?php
$shm_key = ftok(__FILE__, 't');
$shm_id = shmop_open($shm_key, "c", 0644, 100);
?> |
|
This example opened a shared memory block with a system id returned by
ftok().