wget2  2.0.0
Memory functions

Functions

void * wget_memdup (const void *m, size_t n)
 
char * wget_strdup (const char *s)
 
char * wget_strmemdup (const void *m, size_t n)
 
size_t wget_strmemcpy (char *s, size_t ssize, const void *m, size_t n)
 
void * wget_strmemcpy_a (char *s, size_t ssize, const void *m, size_t n)
 

Detailed Description

This is a collections of short memory function not available in standard libraries.

Function Documentation

◆ wget_memdup()

void* wget_memdup ( const void *  m,
size_t  n 
)
Parameters
[in]mMemory to clone
[in]nLength of memory
Returns
Cloned memory

Clone's the memory region m with length n. Returns NULL if m is NULL.

You should free() the returned pointer when not needed any more.

◆ wget_strdup()

char* wget_strdup ( const char *  s)
Parameters
[in]sString to clone
Returns
Cloned string

Clone's the string s like strdup() does. Returns NULL if s is NULL.

You should free() the returned string when not needed any more.

◆ wget_strmemdup()

char* wget_strmemdup ( const void *  m,
size_t  n 
)
Parameters
[in]mMemory to convert into string
[in]nLength of memory
Returns
Created string

Convert the given memory region m with length n into a C string. Returns NULL if m is NULL.

You should free() the returned string when not needed any more.

◆ wget_strmemcpy()

size_t wget_strmemcpy ( char *  s,
size_t  ssize,
const void *  m,
size_t  n 
)
Parameters
[out]sBuffer to hold the C string output
[in]ssizeSize of the output buffer
[in]mMemory to read from
[in]nLength of memory
Returns
Number of bytes copied, not counting the trailing 0 byte

Convert the given memory region m with length n into a C string at s. A max. of ssize - 1 is copied into s.

◆ wget_strmemcpy_a()

void* wget_strmemcpy_a ( char *  s,
size_t  ssize,
const void *  m,
size_t  n 
)
Parameters
[out]sBuffer to hold the C string output
[in]ssizeSize of the output buffer
[in]mMemory to read from
[in]nLength of memory
Returns
Pointer to destination (either s or a freshly allocated buffer)

Convert the given memory region m with length n into a C string at s or at freshly allocated memory, if the space in s was not sufficient.

If s was too small to hold n + 1 bytes, the result must be free'd after use, e.g. if (res != s) wget_free(res);