# nng_sockaddr_ipc(5) Manual Page

## NAME

nng_sockaddr_ipc - IPC socket address

## SYNOPSIS

    #include <nng/nng.h>

    enum sockaddr_family {
        NNG_AF_IPC = 2,
    };

    typedef struct {
        uint16_t sa_family;
        char     sa_path[128];
    } nng_sockaddr_ipc;

## DESCRIPTION

An `nng_sockaddr_ipc` is the flavor of `nng_sockaddr` used to represent addresses associated with IPC communication using the ipc transport.

The following structure members are present:

`sa_family`

  This field will always have the value `NNG_AF_IPC`.

`sa_path`

  This field holds the C string corresponding to path name where the IPC socket is located. For systems using UNIX domain sockets, this will be a path name in the file system, where the UNIX domain socket is located. For Windows systems, this is the path name of the Named Pipe, without the leading `\\.pipe\` portion, which will be automatically added.

| At this time, there is no support for abstract sockets.

| In order to ensure maximum compatibility, applications should avoid hard coding the size of the `sa_path` member explicitly, but use the `sizeof` operator to determine its actual size at compile time. Furthermore, the size is guaranteed to be at least 128, but paths of this length may not be supported on all systems.

| Portable applications should restrict themselves to path names of not more than 90 bytes. Most systems have limits around 100 bytes, but at least one system (HP-UX) is restricted to not more than 92 bytes including the `NUL`.

| If compatibility with legacy nanomsg applications is required, then path names must not be longer than 122 bytes, including the final `NUL` byte. This is because legacy versions of nanomsg cannot express URLs longer than 128 bytes, including the `ipc://` prefix.

## SEE ALSO

nng_sockaddr(5), nng_ipc(7) nng(7)