ZMQ_IPC(7) 0MQ Manual ZMQ_IPC(7)NAMEzmq_ipc - 0MQ local inter-process communication transport
SYNOPSIS
The inter-process transport passes messages between local processes
using a system-dependent IPC mechanism.
Note
The inter-process transport is currently only implemented on
operating systems that provide UNIX domain sockets.
ADDRESSING
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(3) for details.
Note
any existing binding to the same endpoint shall be overridden. That
is, if a second process binds to an endpoint already bound by a
process, this will succeed and the first process will lose its
binding. In this behavior, the ipc transport is not consistent with
the tcp or inproc transports.
Note
the endpoint pathname must be writable by the process. When the
endpoint starts with /, e.g., ipc:///pathname, this will be an
absolute pathname. If the endpoint specifies a directory that does
not exist, the bind shall fail.
Note
on Linux only, when the endpoint pathname starts with @, the
abstract namespace shall be used. The abstract namespace is
independent of the filesystem and if a process attempts to bind an
endpoint already bound by a process, it will fail. See unix(7) for
details.
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().
EXAMPLES
Assigning a local address to a socket.
// Assign the pathname "/tmp/feeds/0"
rc = zmq_bind(socket, "ipc:///tmp/feeds/0");
assert (rc == 0);
Connecting a socket.
// Connect to the pathname "/tmp/feeds/0"
rc = zmq_connect(socket, "ipc:///tmp/feeds/0");
assert (rc == 0);
SEE ALSOzmq_bind(3)zmq_connect(3)zmq_inproc(7)zmq_tcp(7)zmq_pgm(7)zmq_getsockopt(3)zmq(7)AUTHORS
This page was written by the 0MQ community. To make a change please
read the 0MQ Contribution Policy at
http://www.zeromq.org/docs:contributing.
0MQ 4.0.1 03/10/2014 ZMQ_IPC(7)