• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • shm_remove()

    (PHP 4, PHP 5, PHP 7)

    Removes shared memory from Unix systems

    说明

    shm_remove(resource $shm_identifier): bool

    shm_remove() removes the shared memory$shm_identifier. All data will be destroyed.

    参数

    $shm_identifier

    The shared memory identifier as returned by shm_attach()

    返回值

    成功时返回TRUE,或者在失败时返回FALSE

    参见

    It appears that you must be connected to the shm segment in order to remove it.
    <?php
    shm_remove($shm);
    shm_detach($shm);
    ?>
    works, while
    <?php
    shm_detach($shm);
    shm_remove($shm);
    ?>
    produces "Warning: shm_remove(): The parameter is not a valid shm_identifier ..."
    WARNING: this function WILL NOT destroy the memory segment if there are other processes attached to it, but it will return TRUE anyways!
    You will have to try to access the segment again after destroying it to make sure it was relly destroyed.
    Though it says **shm_identifier** in
     int shm_remove(int shm_identifier);
    and
     shm_attach() returns an **id** that that can be used to access the System V...
    a snippet like this:
    <?php
     $key = 1234;
     $shm=shm_attach($key);
     // do whatever...
     shm_remove($shm);
    ?>
    produces an error like
    Warning: 2(which is the value of $shm) is not a existing SysV shared memory key in /usr/cu/web/sema.php on line 44...
    The documentation confused me a bit. I thought shm_remove would get the shm handle/id that returns from shm_attach, not the key given to shm_attach. So, use instead:
     shm_remove($key);
    which is what is intended indeed.

    上篇:shm_remove_var()