# nng_pair_open(3) Manual Page

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

| 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_pair(7), nng(7)