ucx
UAP Common Extensions
|
Compare, copy and printf functions. More...
#include "ucx.h"
#include "string.h"
#include "allocator.h"
#include <inttypes.h>
#include <stdarg.h>
Go to the source code of this file.
Macros | |
#define | UCX_STREAM_COPY_BUFSIZE 4096 |
Default buffer size for ucx_stream_copy() and ucx_stream_ncopy(). | |
#define | ucx_stream_copy(src, dest, rfnc, wfnc) |
Shorthand for an unbounded ucx_stream_bncopy call using a default buffer. More... | |
#define | ucx_stream_ncopy(src, dest, rfnc, wfnc, n) |
Shorthand for ucx_stream_bncopy using a default copy buffer. More... | |
#define | ucx_stream_bcopy(src, dest, rfnc, wfnc, buf, bufsize) |
Shorthand for an unbounded ucx_stream_bncopy call using the specified buffer. More... | |
#define | ucx_sprintf(...) ucx_asprintf(ucx_default_allocator(), __VA_ARGS__) |
Shortcut for ucx_asprintf() with default allocator. More... | |
#define | ucx_bprintf(buffer, ...) |
A printf() like function which writes the output to a UcxBuffer. More... | |
Functions | |
void * | ucx_strcpy (const void *s, void *data) |
Copies a string. More... | |
void * | ucx_memcpy (const void *m, void *n) |
Copies a memory area. More... | |
size_t | ucx_stream_bncopy (void *src, void *dest, read_func rfnc, write_func wfnc, char *buf, size_t bufsize, size_t n) |
Reads data from a stream and writes it to another stream. More... | |
int | ucx_cmp_str (const void *s1, const void *s2, void *data) |
Wraps the strcmp function. More... | |
int | ucx_cmp_strn (const void *s1, const void *s2, void *n) |
Wraps the strncmp function. More... | |
int | ucx_cmp_sstr (const void *s1, const void *s2, void *data) |
Wraps the sstrcmp function. More... | |
int | ucx_cmp_int (const void *i1, const void *i2, void *data) |
Compares two integers of type int. More... | |
int | ucx_cmp_longint (const void *i1, const void *i2, void *data) |
Compares two integers of type long int. More... | |
int | ucx_cmp_longlong (const void *i1, const void *i2, void *data) |
Compares two integers of type long long. More... | |
int | ucx_cmp_int16 (const void *i1, const void *i2, void *data) |
Compares two integers of type int16_t. More... | |
int | ucx_cmp_int32 (const void *i1, const void *i2, void *data) |
Compares two integers of type int32_t. More... | |
int | ucx_cmp_int64 (const void *i1, const void *i2, void *data) |
Compares two integers of type int64_t. More... | |
int | ucx_cmp_uint (const void *i1, const void *i2, void *data) |
Compares two integers of type unsigned int. More... | |
int | ucx_cmp_ulongint (const void *i1, const void *i2, void *data) |
Compares two integers of type unsigned long int. More... | |
int | ucx_cmp_ulonglong (const void *i1, const void *i2, void *data) |
Compares two integers of type unsigned long long. More... | |
int | ucx_cmp_uint16 (const void *i1, const void *i2, void *data) |
Compares two integers of type uint16_t. More... | |
int | ucx_cmp_uint32 (const void *i1, const void *i2, void *data) |
Compares two integers of type uint32_t. More... | |
int | ucx_cmp_uint64 (const void *i1, const void *i2, void *data) |
Compares two integers of type uint64_t. More... | |
intmax_t | ucx_dist_int (const void *i1, const void *i2, void *data) |
Distance function for integers of type int. More... | |
intmax_t | ucx_dist_longint (const void *i1, const void *i2, void *data) |
Distance function for integers of type long int. More... | |
intmax_t | ucx_dist_longlong (const void *i1, const void *i2, void *data) |
Distance function for integers of type long long. More... | |
intmax_t | ucx_dist_int16 (const void *i1, const void *i2, void *data) |
Distance function for integers of type int16_t. More... | |
intmax_t | ucx_dist_int32 (const void *i1, const void *i2, void *data) |
Distance function for integers of type int32_t. More... | |
intmax_t | ucx_dist_int64 (const void *i1, const void *i2, void *data) |
Distance function for integers of type int64_t. More... | |
intmax_t | ucx_dist_uint (const void *i1, const void *i2, void *data) |
Distance function for integers of type unsigned int. More... | |
intmax_t | ucx_dist_ulongint (const void *i1, const void *i2, void *data) |
Distance function for integers of type unsigned long int. More... | |
intmax_t | ucx_dist_ulonglong (const void *i1, const void *i2, void *data) |
Distance function for integers of type unsigned long long. More... | |
intmax_t | ucx_dist_uint16 (const void *i1, const void *i2, void *data) |
Distance function for integers of type uint16_t. More... | |
intmax_t | ucx_dist_uint32 (const void *i1, const void *i2, void *data) |
Distance function for integers of type uint32_t. More... | |
intmax_t | ucx_dist_uint64 (const void *i1, const void *i2, void *data) |
Distance function for integers of type uint64_t. More... | |
int | ucx_cmp_float (const void *f1, const void *f2, void *data) |
Compares two real numbers of type float. More... | |
int | ucx_cmp_double (const void *d1, const void *d2, void *data) |
Compares two real numbers of type double. More... | |
int | ucx_cmp_ptr (const void *ptr1, const void *ptr2, void *data) |
Compares two pointers. More... | |
int | ucx_cmp_mem (const void *ptr1, const void *ptr2, void *n) |
Compares two memory areas. More... | |
int | ucx_fprintf (void *stream, write_func wfc, const char *fmt,...) |
A printf() like function which writes the output to a stream by using a write_func(). More... | |
int | ucx_vfprintf (void *stream, write_func wfc, const char *fmt, va_list ap) |
va_list version of ucx_fprintf(). More... | |
sstr_t | ucx_asprintf (UcxAllocator *allocator, const char *fmt,...) |
A printf() like function which allocates space for a sstr_t the result is written to. More... | |
sstr_t | ucx_vasprintf (UcxAllocator *allocator, const char *fmt, va_list ap) |
va_list version of ucx_asprintf(). More... | |
Compare, copy and printf functions.
#define ucx_bprintf | ( | buffer, | |
... | |||
) |
A printf()
like function which writes the output to a UcxBuffer.
buffer | the buffer the data is written to |
... | format string and additional arguments |
#define ucx_sprintf | ( | ... | ) | ucx_asprintf(ucx_default_allocator(), __VA_ARGS__) |
Shortcut for ucx_asprintf() with default allocator.
#define ucx_stream_bcopy | ( | src, | |
dest, | |||
rfnc, | |||
wfnc, | |||
buf, | |||
bufsize | |||
) |
Shorthand for an unbounded ucx_stream_bncopy call using the specified buffer.
src | the source stream |
dest | the destination stream |
rfnc | the read function |
wfnc | the write function |
buf | a pointer to the copy buffer or NULL if a buffer shall be implicitly created on the heap |
bufsize | the size of the copy buffer - if NULL was provided for buf , this is the size of the buffer that shall be implicitly created |
#define ucx_stream_copy | ( | src, | |
dest, | |||
rfnc, | |||
wfnc | |||
) |
Shorthand for an unbounded ucx_stream_bncopy call using a default buffer.
src | the source stream |
dest | the destination stream |
rfnc | the read function |
wfnc | the write function |
#define ucx_stream_ncopy | ( | src, | |
dest, | |||
rfnc, | |||
wfnc, | |||
n | |||
) |
Shorthand for ucx_stream_bncopy using a default copy buffer.
src | the source stream |
dest | the destination stream |
rfnc | the read function |
wfnc | the write function |
n | maximum number of bytes that shall be copied |
sstr_t ucx_asprintf | ( | UcxAllocator * | allocator, |
const char * | fmt, | ||
... | |||
) |
A printf()
like function which allocates space for a sstr_t the result is written to.
Attention: The sstr_t data is allocated with the allocators ucx_allocator_malloc() function. So it is implementation dependent, if the returned sstr_t.ptr pointer must be passed to the allocators ucx_allocator_free() function manually.
Note: The sstr_t.ptr of the return value will always be NULL
-terminated.
allocator | the UcxAllocator used for allocating the result sstr_t |
fmt | format string |
... | additional arguments |
int ucx_cmp_double | ( | const void * | d1, |
const void * | d2, | ||
void * | data | ||
) |
Compares two real numbers of type double.
d1 | pointer to double one |
d2 | pointer to double two |
data | if provided: a pointer to precision (default: 1e-14) |
int ucx_cmp_float | ( | const void * | f1, |
const void * | f2, | ||
void * | data | ||
) |
Compares two real numbers of type float.
f1 | pointer to float one |
f2 | pointer to float two |
data | if provided: a pointer to precision (default: 1e-6f) |
int ucx_cmp_int | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Compares two integers of type int.
i1 | pointer to integer one |
i2 | pointer to integer two |
data | omitted |
int ucx_cmp_int16 | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Compares two integers of type int16_t.
i1 | pointer to int16_t one |
i2 | pointer to int16_t two |
data | omitted |
int ucx_cmp_int32 | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Compares two integers of type int32_t.
i1 | pointer to int32_t one |
i2 | pointer to int32_t two |
data | omitted |
int ucx_cmp_int64 | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Compares two integers of type int64_t.
i1 | pointer to int64_t one |
i2 | pointer to int64_t two |
data | omitted |
int ucx_cmp_longint | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Compares two integers of type long int.
i1 | pointer to long integer one |
i2 | pointer to long integer two |
data | omitted |
int ucx_cmp_longlong | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Compares two integers of type long long.
i1 | pointer to long long one |
i2 | pointer to long long two |
data | omitted |
int ucx_cmp_mem | ( | const void * | ptr1, |
const void * | ptr2, | ||
void * | n | ||
) |
Compares two memory areas.
ptr1 | pointer one |
ptr2 | pointer two |
n | a pointer to the size_t containing the third parameter for memcmp |
int ucx_cmp_ptr | ( | const void * | ptr1, |
const void * | ptr2, | ||
void * | data | ||
) |
Compares two pointers.
ptr1 | pointer one |
ptr2 | pointer two |
data | omitted |
int ucx_cmp_sstr | ( | const void * | s1, |
const void * | s2, | ||
void * | data | ||
) |
Wraps the sstrcmp function.
s1 | sstr one |
s2 | sstr two |
data | ignored |
int ucx_cmp_str | ( | const void * | s1, |
const void * | s2, | ||
void * | data | ||
) |
Wraps the strcmp function.
s1 | string one |
s2 | string two |
data | omitted |
int ucx_cmp_strn | ( | const void * | s1, |
const void * | s2, | ||
void * | n | ||
) |
Wraps the strncmp function.
s1 | string one |
s2 | string two |
n | a pointer to the size_t containing the third strncmp parameter |
int ucx_cmp_uint | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Compares two integers of type unsigned int.
i1 | pointer to unsigned integer one |
i2 | pointer to unsigned integer two |
data | omitted |
int ucx_cmp_uint16 | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Compares two integers of type uint16_t.
i1 | pointer to uint16_t one |
i2 | pointer to uint16_t two |
data | omitted |
int ucx_cmp_uint32 | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Compares two integers of type uint32_t.
i1 | pointer to uint32_t one |
i2 | pointer to uint32_t two |
data | omitted |
int ucx_cmp_uint64 | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Compares two integers of type uint64_t.
i1 | pointer to uint64_t one |
i2 | pointer to uint64_t two |
data | omitted |
int ucx_cmp_ulongint | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Compares two integers of type unsigned long int.
i1 | pointer to unsigned long integer one |
i2 | pointer to unsigned long integer two |
data | omitted |
int ucx_cmp_ulonglong | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Compares two integers of type unsigned long long.
i1 | pointer to unsigned long long one |
i2 | pointer to unsigned long long two |
data | omitted |
intmax_t ucx_dist_int | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Distance function for integers of type int.
i1 | pointer to integer one |
i2 | pointer to integer two |
data | omitted |
intmax_t ucx_dist_int16 | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Distance function for integers of type int16_t.
i1 | pointer to int16_t one |
i2 | pointer to int16_t two |
data | omitted |
intmax_t ucx_dist_int32 | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Distance function for integers of type int32_t.
i1 | pointer to int32_t one |
i2 | pointer to int32_t two |
data | omitted |
intmax_t ucx_dist_int64 | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Distance function for integers of type int64_t.
i1 | pointer to int64_t one |
i2 | pointer to int64_t two |
data | omitted |
intmax_t ucx_dist_longint | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Distance function for integers of type long int.
i1 | pointer to long integer one |
i2 | pointer to long integer two |
data | omitted |
intmax_t ucx_dist_longlong | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Distance function for integers of type long long.
i1 | pointer to long long one |
i2 | pointer to long long two |
data | omitted |
intmax_t ucx_dist_uint | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Distance function for integers of type unsigned int.
i1 | pointer to unsigned integer one |
i2 | pointer to unsigned integer two |
data | omitted |
intmax_t ucx_dist_uint16 | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Distance function for integers of type uint16_t.
i1 | pointer to uint16_t one |
i2 | pointer to uint16_t two |
data | omitted |
intmax_t ucx_dist_uint32 | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Distance function for integers of type uint32_t.
i1 | pointer to uint32_t one |
i2 | pointer to uint32_t two |
data | omitted |
intmax_t ucx_dist_uint64 | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Distance function for integers of type uint64_t.
i1 | pointer to uint64_t one |
i2 | pointer to uint64_t two |
data | omitted |
intmax_t ucx_dist_ulongint | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Distance function for integers of type unsigned long int.
i1 | pointer to unsigned long integer one |
i2 | pointer to unsigned long integer two |
data | omitted |
intmax_t ucx_dist_ulonglong | ( | const void * | i1, |
const void * | i2, | ||
void * | data | ||
) |
Distance function for integers of type unsigned long long.
i1 | pointer to unsigned long long one |
i2 | pointer to unsigned long long two |
data | omitted |
int ucx_fprintf | ( | void * | stream, |
write_func | wfc, | ||
const char * | fmt, | ||
... | |||
) |
A printf()
like function which writes the output to a stream by using a write_func().
stream | the stream the data is written to |
wfc | the write function |
fmt | format string |
... | additional arguments |
void* ucx_memcpy | ( | const void * | m, |
void * | n | ||
) |
Copies a memory area.
m | a pointer to the memory area |
n | a pointer to the size_t containing the size of the memory area |
void* ucx_strcpy | ( | const void * | s, |
void * | data | ||
) |
Copies a string.
s | the string to copy |
data | omitted |
size_t ucx_stream_bncopy | ( | void * | src, |
void * | dest, | ||
read_func | rfnc, | ||
write_func | wfnc, | ||
char * | buf, | ||
size_t | bufsize, | ||
size_t | n | ||
) |
Reads data from a stream and writes it to another stream.
src | the source stream |
dest | the destination stream |
rfnc | the read function |
wfnc | the write function |
buf | a pointer to the copy buffer or NULL if a buffer shall be implicitly created on the heap |
bufsize | the size of the copy buffer - if NULL was provided for buf , this is the size of the buffer that shall be implicitly created |
n | the maximum number of bytes that shall be copied |
sstr_t ucx_vasprintf | ( | UcxAllocator * | allocator, |
const char * | fmt, | ||
va_list | ap | ||
) |
va_list
version of ucx_asprintf().
allocator | the UcxAllocator used for allocating the result sstr_t |
fmt | format string |
ap | argument list |
int ucx_vfprintf | ( | void * | stream, |
write_func | wfc, | ||
const char * | fmt, | ||
va_list | ap | ||
) |
va_list
version of ucx_fprintf().
stream | the stream the data is written to |
wfc | the write function |
fmt | format string |
ap | argument list |