zmq_ipc - 0MQ local inter-process communication transport
The inter-process transport passes messages between local processes using a system-dependent IPC mechanism.
|The inter-process transport is currently only implemented on operating systems that provide UNIX domain sockets.|
A 0MQ endpoint is a string consisting of a transport
:// followed by an
address. The transport specifies the underlying protocol to use. The
address specifies the transport-specific address to connect to.
For the inter-process transport, the transport is
ipc, and the meaning of
the address part is defined below.
Binding a socket
When binding a socket to a local address using zmq_bind() with the ipc transport, the endpoint shall be interpreted as an arbitrary string identifying the pathname to create. The pathname must be unique within the operating system namespace used by the ipc implementation, and must fulfill any restrictions placed by the operating system on the format and length of a pathname.
When the address is
*, zmq_bind() shall generate a unique temporary
pathname. The caller should retrieve this pathname using the ZMQ_LAST_ENDPOINT
socket option. See zmq_getsockopt for details.
|any existing binding to the same endpoint shall be overridden. In this behavior, the ipc transport is not consistent with the tcp or inproc transports.|
Connecting a socket
When connecting a socket to a peer address using zmq_connect() with the ipc transport, the endpoint shall be interpreted as an arbitrary string identifying the pathname to connect to. The pathname must have been previously created within the operating system namespace by assigning it to a socket with zmq_bind().
// Assign the pathname "/tmp/feeds/0" rc = zmq_bind(socket, "ipc:///tmp/feeds/0"); assert (rc == 0);
// Connect to the pathname "/tmp/feeds/0" rc = zmq_connect(socket, "ipc:///tmp/feeds/0"); assert (rc == 0);