diff options
| author | Garrett D'Amore <garrett@damore.org> | 2024-03-31 10:16:46 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2024-03-31 10:18:28 -0700 |
| commit | f7787f8cc26b211f68dda3180a112ba3074ca638 (patch) | |
| tree | 603157bd358b174715c26cac8e4854bb58103618 /docs/reference/src/util | |
| parent | 1d549a3cc9c3f15378994e52bf53bf418ae762b4 (diff) | |
| download | nng-f7787f8cc26b211f68dda3180a112ba3074ca638.tar.gz nng-f7787f8cc26b211f68dda3180a112ba3074ca638.tar.bz2 nng-f7787f8cc26b211f68dda3180a112ba3074ca638.zip | |
nng_socket_pair
Diffstat (limited to 'docs/reference/src/util')
| -rw-r--r-- | docs/reference/src/util/nng_socket_pair.md | 44 |
1 files changed, 44 insertions, 0 deletions
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 <nng/nng.h> +#include <nng/supplemental/util/platform.h> + +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}} |
