警告:如果还有其他进程附加到该内存段,此函数将不会销毁该内存段,但它将始终返回 TRUE!
您将不得不尝试在销毁它后再次访问该段,以确保它确实被销毁了。
(PHP 4, PHP 5, PHP 7, PHP 8)
shm_remove — 从 Unix 系统中删除共享内存
看来您必须连接到 shm 段才能将其删除。
<?php
shm_remove($shm);
shm_detach($shm);
?>
有效,而
<?php
shm_detach($shm);
shm_remove($shm);
?>
产生“警告:shm_remove(): 参数不是有效的 shm_identifier ...”
虽然它在
int shm_remove(int shm_identifier);
和
shm_attach() 返回一个 **id**,该 **id** 可用于访问 System V...
像这样的代码片段
<?php
$key = 1234;
$shm=shm_attach($key);
// 做任何事情...
shm_remove($shm);
?>
产生一个类似于
警告:2(即 $shm 的值)在 /usr/cu/web/sema.php 的第 44 行上不是现有的 SysV 共享内存键...
文档让我有点困惑。我以为 shm_remove 会获取 shm_attach 返回的 shm 处理程序/id,而不是提供给 shm_attach 的键。所以,改用
shm_remove($key);
这确实是预期的。