NAME¶
IPC::SharedMem - SysV Shared Memory IPC object class
SYNOPSIS¶
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;
DESCRIPTION¶
A class providing an object based interface to SysV IPC shared memory.
METHODS¶
- new ( KEY , SIZE , FLAGS )
- Creates a new shared memory segment associated with
"KEY". A new segment is created if
- •
- "KEY" is equal to "IPC_PRIVATE"
- •
- "KEY" does not already have a shared memory
segment associated with it, and " FLAGS & IPC_CREAT"
is true.
On creation of a new shared memory segment "FLAGS" is used to set the
permissions. Be careful not to set any flags that the Sys V IPC implementation
does not allow: in some systems setting execute bits makes the operations
fail.
- id
- Returns the shared memory identifier.
- read ( POS, SIZE )
- Read "SIZE" bytes from the shared memory segment
at "POS". Returns the string read, or "undef" if there
was an error. The return value becomes tainted. See shmread.
- write ( STRING, POS, SIZE )
- Write "SIZE" bytes to the shared memory segment
at "POS". Returns true if successful, or false if there is an
error. See shmwrite.
- remove
- Remove the shared memory segment from the system or mark it
as removed as long as any processes are still attached to it.
- is_removed
- Returns true if the shared memory segment has been removed
or marked for removal.
- stat
- Returns an object of type "IPC::SharedMem::stat"
which is a sub-class of "Class::Struct". It provides the
following fields. For a description of these fields see you system
documentation.
uid
gid
cuid
cgid
mode
segsz
lpid
cpid
nattach
atime
dtime
ctime
- attach ( [FLAG] )
- Permanently attach to the shared memory segment. When a
"IPC::SharedMem" object is attached, it will use memread and
memwrite instead of shmread and shmwrite for accessing the shared memory
segment. Returns true if successful, or false on error. See shmat.
- detach
- Detach from the shared memory segment that previously has
been attached to. Returns true if successful, or false on error. See
shmdt.
- addr
- Returns the address of the shared memory that has been
attached to in a format suitable for use with "pack('P')".
Returns "undef" if the shared memory has not been attached.
SEE ALSO¶
IPC::SysV, Class::Struct
AUTHORS¶
Marcus Holland-Moritz <mhx@cpan.org>
COPYRIGHT¶
Version 2.x, Copyright (C) 2007-2010, Marcus Holland-Moritz.
Version 1.x, Copyright (c) 1997, Graham Barr.
This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.