---
name: "nng_pair_open"
section: "3"
platform: "linux"
package: "libnng-dev"
version: "1.10.1-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/nng_pair_open"
---

# nng\_pair\_open(3)

create pair socket

## NAME

nng\_pair\_open - create pair socket

## SYNOPSIS

**Version 0**\

```
#include <nng/protocol/pair0/pair.h>
int nng_pair0_open(nng_socket *s);
int nng_pair0_open_raw(nng_socket *s);
```

**Version 1**\

```
#include <nng/protocol/pair1/pair.h>
int nng_pair1_open(nng_socket *s);
int nng_pair1_open_raw(nng_socket *s);
int nng_pair1_open_poly(nng_socktet *s);
```

## DESCRIPTION

The `nng_pair0_open()` and `nng_pair1_open()` functions create a *pair* version 0 or version 1 socket and return it at the location pointed to by *s*.

The `nng_pair0_open_raw()` and `nng_pair1_open_raw()` functions create a *pair* version 0 or version 1 socket in raw mode and return it at the location pointed to by *s*.

The `nng_pair1_open_poly()` function opens a pair version 1 socket in polyamorous mode.

**Note**\

Polyamorous mode is deprecated and should not be used in new applications. The `nng_pair1_open_poly()` function will likely be removed in a future release.

## RETURN VALUES

These functions returns 0 on success, and non-zero otherwise.

## ERRORS

`NNG_ENOMEM`

Insufficient memory is available.

`NNG_ENOTSUP`

The protocol is not supported.

## SEE ALSO

[nng\_socket(5)](/nng_socket/5.md), [nng\_pair(7)](/nng_pair/7.md), [nng(7)](/nng/7.md)
