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: 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.
     
     
| 例子 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().