PHP Conference Japan 2024

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 實例;先前,預期是一個 資源

參見

新增註解

使用者貢獻的註解 3 則註解

HansRich
10 年前
警告:如果還有其他進程連接到記憶體區段,此函式將不會銷毀記憶體區段,但仍會返回 TRUE!

您必須在銷毀後再次嘗試存取該區段,以確保它確實被銷毀。
aaron DURP segura DURP gmail DURP com
18 年前
看來您必須連接到 shm 區段才能移除它。

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

有效,而

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

產生「Warning: shm_remove(): The parameter is not a valid shm_identifier ...」
cu at ulakbim dot gov dot tr
24 年前
儘管在
int shm_remove(int shm_identifier);

shm_attach() 返回一個 **id**,可以用來存取 System V...

像這樣的程式碼片段
<?php
$key
= 1234;
$shm=shm_attach($key);
// 做任何事...
shm_remove($shm);
?>

產生像這樣的錯誤
Warning: 2(這是 $shm 的值) 不是 /usr/cu/web/sema.php 第 44 行中現有的 SysV 共享記憶體鍵...

文件讓我有點困惑。我認為 shm_remove 會取得從 shm_attach 返回的 shm 控制代碼/id,而不是給 shm_attach 的鍵。所以,請改用
shm_remove($key);

這才是真正意圖的。
To Top