getmsg - Linux


getmsg retrieves pending network or vsock messages from a message queue. It is useful for receiving messages from network or vsock sockets in a more efficient way than using recvfrom.


getmsg [-nr] [-a address] [-s size] [-o offset] [-w timeout] [-b buffersize] [-p protocol]


  • -n: Do not block; return error if no message is available immediately.
  • -r: Return the address of the sender.
  • -a address: Specify the address of the socket to receive from.
  • -s size: Specify the size of the message to receive.
  • -o offset: Specify the offset in the buffer to write the message.
  • -w timeout: Specify the timeout in milliseconds for blocking operations. The default is infinite.
  • -b buffersize: Specify the size of the buffer to allocate. The default is 1024 bytes.
  • -p protocol: Specify the protocol for the socket. The default is 0 (IP).


Simple usage

getmsg -n

Retrieve a message with the sender’s address

getmsg -r

Specify the size of the message

getmsg -s 1024

Common Issues

No messages available

If -n is not specified, getmsg will block until a message is available. If no message is available, -n can be used to return an error immediately.

Invalid address

If -a is specified, the address must be a valid address for the protocol specified by -p.


getmsg can be combined with other networking commands, such as sendmsg, to handle network communication in a more efficient way.

Related Commands

  • sendmsg: Send a message on a socket.
  • recvmsg: Receive a message from a socket.