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

FreeBSD Manual Pages

  
 
  

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

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+14.3.quarterly>

home | help