SysV-SharedMem
view release on metacpan or search on metacpan
lib/SysV/SharedMem.pm view on Meta::CPAN
package SysV::SharedMem;
$SysV::SharedMem::VERSION = '0.011';
use 5.008;
use strict;
use warnings FATAL => 'all';
use Carp qw/croak/;
use IPC::SysV qw/ftok IPC_PRIVATE IPC_CREAT SHM_RDONLY/;
use Sub::Exporter::Progressive -setup => { exports => [qw/shared_open shared_remove shared_stat shared_chmod shared_chown shared_detach shared_identifier/] };
use XSLoader;
XSLoader::load(__PACKAGE__, __PACKAGE__->VERSION);
my %get_flags_for = (
'<' => 0,
'+<' => 0,
'>' => 0 | IPC_CREAT,
'+>' => 0 | IPC_CREAT,
lib/SysV/SharedMem.pm view on Meta::CPAN
=item * ctime
Time of last of control structure
=back
=head2 shared_chmod($var, $modebits)
Change the (lower 9) modebits of the shared memory object.
=head2 shared_chown($var, $uid, $gid = undef)
Change the owning uid and optionally gid of the shared memory object.
=head2 shared_detach($var)
Detach the shared memory segment from this variable.
=head2 shared_identifier
Return the identifier for this shared memory segment
lib/SysV/SharedMem.xs view on Meta::CPAN
SET_HASH("nattch", buffer.shm_nattch);
SET_HASH("atime", buffer.shm_atime);
SET_HASH("dtime", buffer.shm_dtime);
SET_HASH("ctime", buffer.shm_ctime);
RETVAL = newRV_noinc((SV*)hash);
OUTPUT:
RETVAL
void
shared_chown(var, uid, gid = &PL_sv_undef)
SV* var;
IV uid;
SV* gid;
PREINIT:
int shmid;
struct shmid_ds buffer;
CODE:
shmid = get_shmid(var, "shared_chown");
my_shmctl(shmid, IPC_STAT, &buffer, "Could not shared_chown: %s");
buffer.shm_perm.uid = uid;
if (SvOK(gid))
buffer.shm_perm.gid = SvIV(gid);
my_shmctl(shmid, IPC_SET, &buffer, "Could not shared_chown: %s");
void
shared_chmod(var, mode)
SV* var;
int mode;
PREINIT:
int shmid;
struct shmid_ds buffer;
CODE:
shmid = get_shmid(var, "shared_chmod");
KEY_binmode|5.003007||Viu
KEY_bless|5.003007||Viu
KEY_break|5.027008||Viu
KEY_caller|5.003007||Viu
KEY_catch|5.033007||Viu
KEY_chdir|5.003007||Viu
KEY_CHECK|5.006000||Viu
KEY_chmod|5.003007||Viu
KEY_chomp|5.003007||Viu
KEY_chop|5.003007||Viu
KEY_chown|5.003007||Viu
KEY_chr|5.003007||Viu
KEY_chroot|5.003007||Viu
KEY_close|5.003007||Viu
KEY_closedir|5.003007||Viu
KEY_cmp|5.003007||Viu
KEY_connect|5.003007||Viu
KEY_continue|5.003007||Viu
KEY_cos|5.003007||Viu
KEY_crypt|5.003007||Viu
KEY___DATA|5.003007||Viu
Perl_isnan|5.006001|5.006001|n
PERL_IS_SUBWORD_ADDR|5.027007||Viu
PERL_IS_UTF8_CHAR_DFA|5.035004||Viu
PERL_JNP_TO_DECIMAL|5.033001||Viu
Perl_langinfo|5.027004|5.027004|n
PERL_LANGINFO_H|5.027004||Viu
PERL_LAST_5_18_0_INTERP_MEMBER|5.017009||Viu
Perl_ldexp|5.021003|5.021003|n
PerlLIO_access|5.005000||Viu
PerlLIO_chmod|5.005000||Viu
PerlLIO_chown|5.005000||Viu
PerlLIO_chsize|5.005000||Viu
PerlLIO_close|5.005000||Viu
PerlLIO_dup2|5.005000||Viu
PerlLIO_dup2_cloexec|5.027008||Viu
PerlLIO_dup|5.005000||Viu
PerlLIO_dup_cloexec|5.027008||Viu
PerlLIO_flock|5.005000||Viu
PerlLIO_fstat|5.005000||Viu
PerlLIO_ioctl|5.005000||Viu
PerlLIO_isatty|5.005000||Viu
( run in 1.148 second using v1.01-cache-2.11-cpan-5511b514fd6 )