summaryrefslogtreecommitdiff
path: root/docs/reference/src/util/nng_strdup.md
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2024-03-30 16:12:02 -0700
committerGarrett D'Amore <garrett@damore.org>2024-03-30 16:12:02 -0700
commitb779b71b00c5f5f8cb9f0ee7d8feeadf9e2dca48 (patch)
treea4f70586954a32d8c2fef36c46aa601ee874606e /docs/reference/src/util/nng_strdup.md
parenta622720b87cbee884c07feac228796415d4cb548 (diff)
downloadnng-b779b71b00c5f5f8cb9f0ee7d8feeadf9e2dca48.tar.gz
nng-b779b71b00c5f5f8cb9f0ee7d8feeadf9e2dca48.tar.bz2
nng-b779b71b00c5f5f8cb9f0ee7d8feeadf9e2dca48.zip
util funcs reorg
Diffstat (limited to 'docs/reference/src/util/nng_strdup.md')
-rw-r--r--docs/reference/src/util/nng_strdup.md48
1 files changed, 48 insertions, 0 deletions
diff --git a/docs/reference/src/util/nng_strdup.md b/docs/reference/src/util/nng_strdup.md
new file mode 100644
index 00000000..363af304
--- /dev/null
+++ b/docs/reference/src/util/nng_strdup.md
@@ -0,0 +1,48 @@
+# nng_strdup
+
+## NAME
+
+nng_strdup --- duplicate string
+
+## SYNOPSIS
+
+```c
+#include <nng/nng.h>
+
+char *nng_strdup(const char *src);
+```
+
+## DESCRIPTION
+
+The `nng_strdup()` duplicates the string _src_ and returns it.
+
+This is logically equivalent to using [`nng_alloc()`][nng_alloc]
+to allocate a region of memory of `strlen(s) + 1` bytes, and then
+using `strcpy()` to copy the string into the destination before
+returning it.
+
+The returned string should be deallocated with
+[`nng_strfree()`][nng_strfree], or may be deallocated using the
+[`nng_free()`][nng_free] using the length of the returned string plus
+one (for the `NUL` terminating byte).
+
+> [!IMPORTANT]
+> Do not use the system `free()` or similar functions to deallocate
+> the string, since those may use a different memory arena!
+
+## RETURN VALUES
+
+This function returns the new string on success, and `NULL` on failure.
+
+## ERRORS
+
+No errors are returned, but a `NULL` return value should be
+treated the same as `NNG_ENOMEM`.
+
+## SEE ALSO
+
+[nng_alloc.md][nng_alloc],
+[nng_free.md][nng_free],
+[nng_strfree.md][nng_strfree]
+
+{{#include ../refs.md}}