From 597cc5edd624525563e6549dc0057eca2a51c81d Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Tue, 11 Nov 2014 13:30:46 -0500 Subject: upgrade to new version --- doc/zmq_ipc.txt | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 doc/zmq_ipc.txt (limited to 'doc/zmq_ipc.txt') diff --git a/doc/zmq_ipc.txt b/doc/zmq_ipc.txt new file mode 100644 index 0000000..e5c8818 --- /dev/null +++ b/doc/zmq_ipc.txt @@ -0,0 +1,95 @@ +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 `*`, _zmq_bind()_ shall generate a unique temporary +pathname. The caller should retrieve this pathname using the ZMQ_LAST_ENDPOINT +socket option. See linkzmq: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 ALSO +-------- +linkzmq:zmq_bind[3] +linkzmq:zmq_connect[3] +linkzmq:zmq_inproc[7] +linkzmq:zmq_tcp[7] +linkzmq:zmq_pgm[7] +linkzmq:zmq_getsockopt[3] +linkzmq:zmq[7] + + +AUTHORS +------- +This page was written by the 0MQ community. To make a change please +read the 0MQ Contribution Policy at . -- cgit v1.2.3