Provided by: libnng-dev_1.9.0-1_amd64 bug

NAME

       nng_ipc - IPC transport

SYNOPSIS

           #include <nng/transport/ipc/ipc.h>

           int nng_ipc_register(void);

DESCRIPTION

       The ipc transport provides communication support between sockets within different
       processes on the same host. For POSIX platforms, this is implemented using UNIX domain
       sockets. For Windows, this is implemented using Windows Named Pipes. Other platforms may
       have different implementation strategies.

   Registration
       This transport is generally built-in to the core, so no extra steps to use it should be
       necessary.

   URI Formats
   Traditional Names
       This transport uses URIs using the scheme ipc://, followed by a path name in the file
       system where the socket or named pipe should be created.

           Tip
           On Windows, all names are prefixed by \\.\pipe\ and do not reside in the normal file
           system. On POSIX platforms, the path is taken literally, and is relative to the
           current directory, unless it begins with /, in which case it is relative to the root
           directory.

           Note
           When using relative paths on POSIX systems, the address used and returned in
           properties like NNG_OPT_LOCADDR and NNG_OPT_URL will also be relative. Consequently,
           they will only be interpreted the same by processes that have the same working
           directory. To ensure maximum portability and safety, absolute paths are recommended
           whenever possible.

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

   UNIX Aliases
       The unix:// scheme is an alias for ipc:// and can be used inter-changeably, but only on
       POSIX systems.

       The purpose of this scheme is to support a future transport making use of AF_UNIX on
       Windows systems, at which time it will be necessary to discriminate between the Named
       Pipes and the AF_UNIX based transports.

   Abstract Names
       On Linux, this transport also can support abstract sockets. Abstract sockets use a
       URI-encoded name after the scheme, which allows arbitrary values to be conveyed in the
       path, including embedded NUL bytes. For example, the name "a\0b"  would be represented as
       abstract://a%00b.

           Tip
           An empty name may be used with a listener to request “auto bind” be used to select a
           name. In this case the system will allocate a free name. The name assigned may be
           retrieved using NNG_OPT_LOCADDR.

           Note
           NNG cannot represent an abstract socket with the empty name.

           Note
           Abstract names do not include the leading NUL byte used in the low-level socket
           address.

       Abstract sockets do not have any representation in the file system, and are automatically
       freed by the system when no longer in use. Abstract sockets ignore socket permissions, but
       it is still possible to determine the credentials of the peer with NNG_OPT_PEER_UID, etc.

   Socket Address
       When using an nng_sockaddr structure, the actual structure is of type nng_sockaddr_ipc,
       except for abstract sockets, which use nng_sockaddr_abstract.

   Transport Options
       The following transport options are supported by this transport, where supported by the
       underlying platform.

       •   NNG_OPT_IPC_PERMISSIONS

       •   NNG_OPT_IPC_SECURITY_DESCRIPTOR

       •   NNG_OPT_LOCADDR

       •   NNG_OPT_REMADDR

       •   NNG_OPT_PEER_GID

       •   NNG_OPT_PEER_PID

       •   NNG_OPT_PEER_UID

       •   NNG_OPT_PEER_ZONEID

       •   NNG_OPT_URL

SEE ALSO

       nng_sockaddr(5), nng_ipc_options(5), nng_options(5), nng(7)

                                            2024-10-11                                 NNG_IPC(7)