shm_remove

(PHP 4, PHP 5, PHP 7, PHP 8)

shm_remove从 Unix 系统中删除共享内存

描述

shm_remove(SysvSharedMemory $shm): bool

shm_remove() 删除共享内存 shm。所有数据将被销毁。

参数

shm

shm_attach() 获得的共享内存段。

返回值

成功时返回 true,失败时返回 false

变更日志

版本 描述
8.0.0 shm 现在需要一个 SysvSharedMemory 实例;以前需要一个 resource

参见

添加说明

用户贡献的说明 3 条说明

1
HansRich
10 年前
警告:如果还有其他进程附加到该内存段,此函数将不会销毁该内存段,但它将始终返回 TRUE!

您将不得不尝试在销毁它后再次访问该段,以确保它确实被销毁了。
1
aaron DURP segura DURP gmail DURP com
17 年前
看来您必须连接到 shm 段才能将其删除。

<?php
shm_remove
($shm);
shm_detach($shm);
?>

有效,而

<?php
shm_detach
($shm);
shm_remove($shm);
?>

产生“警告:shm_remove(): 参数不是有效的 shm_identifier ...”
-2
cu at ulakbim dot gov dot tr
24 年前
虽然它在
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);

这确实是预期的。
To Top