```{index} single: IPC::Msg ``` # IPC::Msg SysV Msg IPC object class ## SYNOPSIS ```perl use IPC::SysV qw(IPC_PRIVATE S_IRUSR S_IWUSR); use IPC::Msg; $msg = IPC::Msg->new(IPC_PRIVATE, S_IRUSR | S_IWUSR); $msg->snd($msgtype, $msgdata); $msg->rcv($buf, 256); $ds = $msg->stat; $msg->remove; ``` ## DESCRIPTION A class providing an object based interface to SysV IPC message queues. ## METHODS - new ( KEY , FLAGS ) Creates a new message queue associated with `KEY`. A new queue is created if - `KEY` is equal to `IPC_PRIVATE` - `KEY` does not already have a message queue associated with it, and `_FLAGS_ & IPC_CREAT` is true. On creation of a new message queue `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 system message queue identifier. - rcv ( BUF, LEN \[, TYPE \[, FLAGS \]\] ) Read a message from the queue. Returns the type of the message read. See [msgrcv(2)](http://man.he.net/man2/msgrcv). The BUF becomes tainted. - remove Remove and destroy the message queue from the system. - set ( STAT ) - set ( NAME => VALUE \[, NAME => VALUE ...\] ) `set` will set the following values of the `stat` structure associated with the message queue. ```text uid gid mode (oly the permission bits) qbytes ``` `set` accepts either a stat object, as returned by the `stat` method, or a list of _name_-_value_ pairs. - snd ( TYPE, MSG \[, FLAGS \] ) Place a message on the queue with the data from `MSG` and with type `TYPE`. See [msgsnd(2)](http://man.he.net/man2/msgsnd). - stat Returns an object of type `IPC::Msg::stat` which is a sub-class of `Class::Struct`. It provides the following fields. For a description of these fields see you system documentation. ```text uid gid cuid cgid mode qnum qbytes lspid lrpid stime rtime ctime ``` ## SEE ALSO [IPC::SysV](SysV.md), [Class::Struct](../Class/Struct.md) ## AUTHORS Graham Barr , Marcus Holland-Moritz ## COPYRIGHT Version 2.x, Copyright (C) 2007-2013, 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.