---
name: "xs_ipc"
section: "7"
platform: "linux"
package: "libxs-dev"
version: "1.2.0-2"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/xs_ipc"
---

# xs\_ipc(7)

local inter-process transport

## NAME

xs\_ipc - local inter-process 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 Crossroads address string consists of two parts as follows: *transport*://*endpoint*. The *transport* part specifies the underlying transport protocol to use, and for the inter-process transport shall be set to ipc. The meaning of the *endpoint* part for the inter-process transport is defined below.

### Assigning a local address to a socket

When assigning a local address to a *socket* using *xs\_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*.

### Connecting a socket

When connecting a *socket* to a peer address using *xs\_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 *xs\_bind()*.

## WIRE FORMAT

Not applicable.

## EXAMPLES

**Assigning a local address to a socket**.

```
/* Assign the pathname "/tmp/feeds/0" */
rc = xs_bind(socket, "ipc:///tmp/feeds/0");
assert (rc != -1);
```

**Connecting a socket**.

```
/* Connect to the pathname "/tmp/feeds/0" */
rc = xs_connect(socket, "ipc:///tmp/feeds/0");
assert (rc != -1);
```

## SEE ALSO

[**xs\_bind**(3)](/xs_bind/3.md) [**xs\_connect**(3)](/xs_connect/3.md) [**xs\_inproc**(7)](/xs_inproc/7.md) [**xs\_tcp**(7)](/xs_tcp/7.md) [**xs\_pgm**(7)](/xs_pgm/7.md) [**xs**(7)](/xs/7.md)

## AUTHORS

The Crossroads documentation was written by Martin Sustrik \<**sustrik@250bpm.com**\[1\]\> and Martin Lucina \<**martin@lucina.net**\[2\]\>.

## NOTES

- 1\.

  sustrik@250bpm.com

  mailto:sustrik@250bpm.com

- 2\.

  martin@lucina.net

  mailto:martin@lucina.net
