aboutsummaryrefslogtreecommitdiff
path: root/docs/ref/api/util
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2024-10-06 21:53:19 -0700
committerGarrett D'Amore <garrett@damore.org>2024-10-06 21:53:19 -0700
commit7dd81b3c116127f8eed3dc6f05c62ec36b0097d8 (patch)
tree2ff686672fcb0481e17c885b2d6c29dc940a32f2 /docs/ref/api/util
parentc6a0c724eead547ec53079e52ca93ffa52cb42fd (diff)
downloadnng-7dd81b3c116127f8eed3dc6f05c62ec36b0097d8.tar.gz
nng-7dd81b3c116127f8eed3dc6f05c62ec36b0097d8.tar.bz2
nng-7dd81b3c116127f8eed3dc6f05c62ec36b0097d8.zip
Converted nng_strdup and nng_strfree to mdbook.
Diffstat (limited to 'docs/ref/api/util')
-rw-r--r--docs/ref/api/util/index.md1
-rw-r--r--docs/ref/api/util/nng_strdup.md54
2 files changed, 55 insertions, 0 deletions
diff --git a/docs/ref/api/util/index.md b/docs/ref/api/util/index.md
index eeb13906..1f202c0f 100644
--- a/docs/ref/api/util/index.md
+++ b/docs/ref/api/util/index.md
@@ -10,5 +10,6 @@ of other uses.
- [nng_id_map](nng_id_map.md)
- [nng_msleep](nng_msleep.md)
- [nng_random](nng_random.md)
+- [nng_strdup](nng_strdup.md)
- [nng_strerror](nng_strerror.md)
- [nng_version](nng_version.md)
diff --git a/docs/ref/api/util/nng_strdup.md b/docs/ref/api/util/nng_strdup.md
new file mode 100644
index 00000000..32d3fba2
--- /dev/null
+++ b/docs/ref/api/util/nng_strdup.md
@@ -0,0 +1,54 @@
+# nng_strdup
+
+## NAME
+
+nng_strdup --- duplicate string
+
+## SYNOPSIS
+
+```c
+#include <nng/nng.h>
+
+char *nng_strdup(const char *src);
+void nng_strfree(char *str);
+```
+
+## DESCRIPTION
+
+The {{i:`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
+{{i:`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!
+
+> [!IMPORTANT]
+> If a string created with
+> `nng_strdup` is modified to be shorter, then it is incorrect to free it with `nng_strfree`.
+> (The [`nng_free`][nng_free] function can be used instead in that
+> case, using the length of the original string plus one to account for the `NUL` byte, for the size.)
+
+## RETURN VALUES
+
+The `nng_strdup` function returns the new string on success, and `NULL` on failure.
+
+## ERRORS
+
+No errors are returned from `nng_strdup`, but a `NULL` return value should be
+treated the same as `NNG_ENOMEM`.
+
+## SEE ALSO
+
+[nng_alloc][nng_alloc]
+
+[nng_alloc]: ../util/nng_alloc.md
+[nng_free]: ../util/nng_alloc.md