aboutsummaryrefslogtreecommitdiff
path: root/docs/ref/api/util/nng_socket_pair.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/ref/api/util/nng_socket_pair.md')
-rw-r--r--docs/ref/api/util/nng_socket_pair.md42
1 files changed, 42 insertions, 0 deletions
diff --git a/docs/ref/api/util/nng_socket_pair.md b/docs/ref/api/util/nng_socket_pair.md
new file mode 100644
index 00000000..454c15fc
--- /dev/null
+++ b/docs/ref/api/util/nng_socket_pair.md
@@ -0,0 +1,42 @@
+# nng_socket_pair
+
+## NAME
+
+nng_socket_pair --- create a connected pair of BSD sockets
+
+## SYNOPSIS
+
+```c
+#include <nng/nng.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 transport][socket].
+
+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.
+{{footnote: 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][socket]
+
+[socket]: ../../tran/socket.md