Provided by: libzmq3-dev_4.3.4-2_amd64 bug

NAME

       zmq_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 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.

           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 behaviour, 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.

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

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 ALSO

       zmq_bind(3) zmq_connect(3) zmq_inproc(7) zmq_tcp(7) zmq_pgm(7) zmq_vmci(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.