IPC::SysV#
System V IPC constants and the system calls Perl’s builtins do not cover.
Perl’s core already provides msgget/msgctl/msgsnd/msgrcv, semget/semctl/semop and shmget/shmctl/shmread/shmwrite as builtins (pp_sys.c). What the IPC::SysV XS adds on top is the constant table (IPC_CREAT, SEM_UNDO, SHM_RDONLY, …), the ftok key generator, shared-memory attach/detach, and the pack/unpack pair each of IPC::Msg::stat, IPC::Semaphore::stat and IPC::SharedMem::stat uses to move a struct msqid_ds / semid_ds / shmid_ds across the Perl boundary.
This is the XS half only. IPC/SysV.pm still loads from disk (xs_only: true) and supplies @EXPORT_OK, %EXPORT_TAGS and the AUTOLOAD that turns a constant name into a call to _constant. IPC::Msg, IPC::Semaphore and IPC::SharedMem are pure Perl on top of it and need no native half at all.
Functions#
Other Functions#
ftok#
ftok(path, id = undef) - SysV.xs line 307.
memread#
memread(addr, sv, pos, size) - SysV.xs line 345.
memwrite#
memwrite(addr, sv, pos, size) - SysV.xs line 370.
shmat#
shmat(id, addr, flag) - SysV.xs line 388. Returns the attach address as a PV holding the raw pointer bytes, matching sv2addr’s expectation.
shmdt#
shmdt(addr) - SysV.xs line 409.
constant#
_constant($name) - const-xs.inc.