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 共享記憶體的類別。
建立新的共享記憶體區段,其大小為 SIZE
位元組,並與 KEY
關聯。如果符合下列條件,就會建立新的區段:
KEY
等於 IPC_PRIVATE
KEY
尚未有與其關聯的共享記憶體區段,且 FLAGS & IPC_CREAT
為 true。
建立新的共享記憶體區段時,會使用 FLAGS
設定權限。請小心不要設定 Sys V IPC 實作不允許的任何旗標:在某些系統中,設定執行位元會導致作業失敗。
傳回共享記憶體識別碼。
從 POS
位置的共享記憶體區段中讀取 SIZE
位元組。傳回已讀取的字串,或在發生錯誤時傳回 undef
。傳回值會受到污染。請參閱 shmread。
將 大小
位元組寫入 位置
處的共享記憶體區段。如果成功,傳回 true,如果發生錯誤,傳回 false。請參閱 shmwrite。
從系統中移除共享記憶體區段,或將其標記為已移除,只要任何程序仍附著在其上。
如果共享記憶體區段已移除或標記為已移除,傳回 true。
傳回 IPC::SharedMem::stat
類型的物件,它是 Class::Struct
的子類別。它提供下列欄位。有關這些欄位的說明,請參閱您的系統文件。
uid
gid
cuid
cgid
mode
segsz
lpid
cpid
nattch
atime
dtime
ctime
永久附著於共享記憶體區段。當 IPC::SharedMem
物件附著時,它將使用 memread 和 memwrite 來存取共享記憶體區段,而不是 shmread 和 shmwrite。如果成功,傳回 true,如果發生錯誤,傳回 false。請參閱 shmat(2)。
從先前已附著的共享記憶體區段中分離。如果成功,傳回 true,如果發生錯誤,傳回 false。請參閱 shmdt(2)。
傳回已附著的共享記憶體的位址,其格式適合與 pack('P')
搭配使用。如果尚未附著共享記憶體,傳回 undef
。
Marcus Holland-Moritz <mhx@cpan.org>
2.x 版,版權所有 (C) 2007-2013,Marcus Holland-Moritz。
1.x 版,版權所有 (c) 1997,Graham Barr。
此程式為自由軟體;您可以在與 Perl 相同的條款下重新散布或修改它。