From f7787f8cc26b211f68dda3180a112ba3074ca638 Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sun, 31 Mar 2024 10:16:46 -0700 Subject: nng_socket_pair --- docs/reference/src/util/nng_socket_pair.md | 44 ++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 docs/reference/src/util/nng_socket_pair.md (limited to 'docs/reference/src/util') diff --git a/docs/reference/src/util/nng_socket_pair.md b/docs/reference/src/util/nng_socket_pair.md new file mode 100644 index 00000000..ac0fb76a --- /dev/null +++ b/docs/reference/src/util/nng_socket_pair.md @@ -0,0 +1,44 @@ +# nng_socket_pair + +## NAME + +nng_socket_pair --- create a connected pair of BSD sockets + +## SYNOPSIS + +```c +#include +#include + +int nng_socket_pair(int fds[2]); +``` + +## DESCRIPTION + +The `nng_socket_pair()` function creates a pair of connected BSD sockets. +These sockets, which are returned in the _fds_ array, are suitable for +use with the [BSD Socket][sockfd] transport. + +On POSIX platforms, this is a thin wrapper around the standard `socketpair()` function, +using the {{i:`AF_UNIX`}} family and the `SOCK_STREAM` socket type.[^1] + +[^1]: At present only POSIX platforms implementing `socketpair()` support this function. + +> [!TIP] +> This function may be useful for creating a shared connection between a parent process and +> a child process on UNIX platforms, without requiring the processes use a shared filesystem or TCP connection. + +## RETURN VALUES + +This function returns 0 on success, and non-zero otherwise. + +## ERRORS + +- `NNG_ENOMEM`: Insufficient memory exists. +- `NNG_ENOTSUP`: This platform does not support socket pairs. + +## SEE ALSO + +[BSD Socket Transport][sockfd] + +{{#include ../refs.md}} -- cgit v1.2.3-70-g09d2