Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
ZMQ_IPC(7)			   0MQ Manual			      ZMQ_IPC(7)

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  ad-
     dress.  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 identi-
     fying the pathname to create. The pathname must be unique within the  oper-
     ating 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  tempo-
     rary   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 end-
	 point 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 identi-
     fying 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.

0MQ 4.3.5			   10/09/2023			      ZMQ_IPC(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=zmq_ipc&sektion=7&manpath=FreeBSD+Ports+15.1.quarterly>

home | help