Provided by: libzmq3-dev_4.3.2-1_amd64 bug


       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 wild-card *, 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.

           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 behaviour, the ipc transport is not
           consistent with the tcp or inproc transports.

           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.

           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

           IPC pathnames have a maximum size that depends on the operating system. On Linux, the
           maximum is 113 characters including the "ipc://" prefix (107 characters for the real
           path name).

   Unbinding wild-card address from a socket
       When wild-card * endpoint was used in zmq_bind(), the caller should use real endpoint
       obtained from the ZMQ_LAST_ENDPOINT socket option to unbind this endpoint from a socket
       using zmq_unbind().

   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().


       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);


       zmq_bind(3) zmq_connect(3) zmq_inproc(7) zmq_tcp(7) zmq_pgm(7) zmq_vmci(7)
       zmq_getsockopt(3) zmq(7)


       This page was written by the 0MQ community. To make a change please read the 0MQ
       Contribution Policy at