string.h
More...
string.h
This header provides utility functions that the standard C libs string.h
lacks, such as explicit_bzero
Files | |
file | string_utils.h |
Utility functions that are missing in string.h | |
Functions | |
static void | explicit_bzero (void *dest, size_t n_bytes) |
Like memset(dest, 0, n_bytes) , but secure. More... | |
ssize_t | strscpy (char *dest, const char *src, size_t count) |
Copy the string, or as much of it as fits, into the dest buffer. More... | |
|
inlinestatic |
Like memset(dest, 0, n_bytes)
, but secure.
Unlike memset(dest, 0, n_bytes)
, this will zero out the memory even in cases the compiler would optimize out the call to memset()
.
memset()
for performance reasons.[in,out] | dest | Memory to clear |
[in] | n_bytes | Size of memory to clear in bytes |
Definition at line 66 of file string_utils.h.
ssize_t strscpy | ( | char * | dest, |
const char * | src, | ||
size_t | count | ||
) |
Copy the string, or as much of it as fits, into the dest buffer.
Preferred to strncpy
since it always returns a valid string, and doesn't unnecessarily force the tail of the destination buffer to be zeroed. If the zeroing is desired, it's likely cleaner to use strscpy
with an overflow test, then just memset the tail of the dest buffer.
[out] | dest | Where to copy the string to |
[in] | src | Where to copy the string from |
[in] | count | Size of destination buffer |
-E2BIG | the destination buffer wasn't big enough |