Internal Methods for Elektra and Backends. More...
Functions | |
int | elektraStrCmp (const char *s1, const char *s2) |
int | elektraStrCaseCmp (const char *s1, const char *s2) |
int | elektraRealloc (void **buffer, size_t size) |
void | elektraFree (void *ptr) |
char * | elektraStrDup (const char *s) |
char * | elektraStrNDup (const char *s, size_t l) |
size_t | elektraStrLen (const char *s) |
Internal Methods for Elektra and Backends.
To use them:
#include <kdbbackend.h>
There are some areas where libraries have to reimplement some basic functions to archive support for non-standard systems, for testing purposes or to provide a little more convenience.
void elektraFree | ( | void * | ptr | ) |
Free memory of elektra or its backends.
ptr | the pointer to free |
int elektraRealloc | ( | void ** | buffer, | |
size_t | size | |||
) |
Reallocate Storage in a save way.
if (elektraRealloc ((void **) & buffer, new_length) < 0) { // here comes the failure handler // you can still use the old buffer #if DEBUG fprintf (stderr, "Reallocation error\n"); #endif free (buffer); buffer = 0; // return with error } *
buffer | is a pointer to a malloc | |
size | is the new size for the memory |
int elektraStrCaseCmp | ( | const char * | s1, | |
const char * | s2 | |||
) |
Compare Strings ignoring case using kdb semantics.
TODO: semantics not correct Does not work with binary sort.
s1 | The first string to be compared | |
s2 | The second string to be compared |
int elektraStrCmp | ( | const char * | s1, | |
const char * | s2 | |||
) |
Compare Strings using kdb semantics.
s1 | The first string to be compared | |
s2 | The second string to be compared |
/ is handled special, it will always be prefered for any other character.
char* elektraStrDup | ( | const char * | s | ) |
Copy string into new allocated memory.
You need to free the memory yourself.
s | the null-terminated string to duplicate |
size_t elektraStrLen | ( | const char * | s | ) |
Calculates the length in bytes of a string.
This function differs from strlen() because it is Unicode and multibyte chars safe. While strlen() counts characters and ignores the final NULL, elektraStrLen() count bytes including the ending NULL.
s | the string to get the length from |
char* elektraStrNDup | ( | const char * | s, | |
size_t | l | |||
) |
Copy buffer into new allocated memory.
You need to free the memory yourself.
This function also works with \0 characters in the buffer. The length is taken as given, it must be correct.
s | must be a allocated buffer | |
l | the length of s |