目錄

名稱

IPC::SharedMem - SysV 共享記憶體 IPC 物件類別

語法

use IPC::SysV qw(IPC_PRIVATE S_IRUSR S_IWUSR);
use IPC::SharedMem;

$shm = IPC::SharedMem->new(IPC_PRIVATE, 8, S_IRWXU);

$shm->write(pack("S", 4711), 2, 2);

$data = $shm->read(0, 2);

$ds = $shm->stat;

$shm->remove;

說明

提供基於物件的介面,以存取 SysV IPC 共享記憶體的類別。

方法

new ( KEY , SIZE , FLAGS )

建立新的共享記憶體區段,其大小為 SIZE 位元組,並與 KEY 關聯。如果符合下列條件,就會建立新的區段:

  • KEY 等於 IPC_PRIVATE

  • KEY 尚未有與其關聯的共享記憶體區段,且 FLAGS & IPC_CREAT 為 true。

建立新的共享記憶體區段時,會使用 FLAGS 設定權限。請小心不要設定 Sys V IPC 實作不允許的任何旗標:在某些系統中,設定執行位元會導致作業失敗。

id

傳回共享記憶體識別碼。

read ( POS, SIZE )

POS 位置的共享記憶體區段中讀取 SIZE 位元組。傳回已讀取的字串,或在發生錯誤時傳回 undef。傳回值會受到污染。請參閱 shmread

write ( 字串, 位置, 大小 )

大小 位元組寫入 位置 處的共享記憶體區段。如果成功,傳回 true,如果發生錯誤,傳回 false。請參閱 shmwrite

remove

從系統中移除共享記憶體區段,或將其標記為已移除,只要任何程序仍附著在其上。

is_removed

如果共享記憶體區段已移除或標記為已移除,傳回 true。

stat

傳回 IPC::SharedMem::stat 類型的物件,它是 Class::Struct 的子類別。它提供下列欄位。有關這些欄位的說明,請參閱您的系統文件。

uid
gid
cuid
cgid
mode
segsz
lpid
cpid
nattch
atime
dtime
ctime
attach ( [旗標] )

永久附著於共享記憶體區段。當 IPC::SharedMem 物件附著時,它將使用 memreadmemwrite 來存取共享記憶體區段,而不是 shmreadshmwrite。如果成功,傳回 true,如果發生錯誤,傳回 false。請參閱 shmat(2)

detach

從先前已附著的共享記憶體區段中分離。如果成功,傳回 true,如果發生錯誤,傳回 false。請參閱 shmdt(2)

addr

傳回已附著的共享記憶體的位址,其格式適合與 pack('P') 搭配使用。如果尚未附著共享記憶體,傳回 undef

另請參閱

IPC::SysVClass::Struct

作者

Marcus Holland-Moritz <mhx@cpan.org>

版權

2.x 版,版權所有 (C) 2007-2013,Marcus Holland-Moritz。

1.x 版,版權所有 (c) 1997,Graham Barr。

此程式為自由軟體;您可以在與 Perl 相同的條款下重新散布或修改它。