Character string functions

These functions are more secure versions of several of the character string functions available in the standard C run-time library. More...

Functions

EXTERNRT char * rtxStrcat (char *dest, size_t bufsiz, const char *src)
 This function concatanates the given string onto the string buffer.
EXTERNRT char * rtxStrncat (char *dest, size_t bufsiz, const char *src, size_t nchars)
 This function concatanates the given number of characters from the given string onto the string buffer.
EXTERNRT char * rtxStrcpy (char *dest, size_t bufsiz, const char *src)
 This function copies a null-terminated string to a target buffer.
EXTERNRT char * rtxStrncpy (char *dest, size_t bufsiz, const char *src, size_t nchars)
 This function copies the given number of characters from a string to a target buffer.
EXTERNRT char * rtxStrdup (OSCTXT *pctxt, const char *src)
 This function creates a duplicate copy of a null-terminated string.
EXTERNRT const char * rtxStrJoin (char *dest, size_t bufsiz, const char *str1, const char *str2, const char *str3, const char *str4, const char *str5)
 This function concatanates up to five substrings together into a single string.
EXTERNRT const char * rtxStrDynJoin (OSCTXT *pctxt, const char *str1, const char *str2, const char *str3, const char *str4, const char *str5)
 This function allocates memory for and concatanates up to five substrings together into a single string.
EXTERNRT int rtxIntToCharStr (OSINT32 value, char *dest, size_t bufsiz, char padchar)
 This function converts a signed 32-bit integer into a character string.
EXTERNRT int rtxUIntToCharStr (OSUINT32 value, char *dest, size_t bufsiz, char padchar)
 This function converts an unsigned 32-bit integer into a character string.
EXTERNRT int rtxInt64ToCharStr (OSINT64 value, char *dest, size_t bufsiz, char padchar)
 This function converts a signed 64-bit integer into a character string.
EXTERNRT int rtxUInt64ToCharStr (OSUINT64 value, char *dest, size_t bufsiz, char padchar)
 This function converts an unsigned 64-bit integer into a character string.
EXTERNRT int rtxHexCharsToBinCount (const char *hexstr, size_t nchars)
 This function returns a count of the number of bytes the would result from the conversion of a hexadecimal character string to binary.
EXTERNRT int rtxHexCharsToBin (const char *hexstr, size_t nchars, OSOCTET *binbuf, size_t bufsize)
 This function converts the given hex string to binary.

Detailed Description

These functions are more secure versions of several of the character string functions available in the standard C run-time library.


Function Documentation

EXTERNRT int rtxHexCharsToBin ( const char *  hexstr,
size_t  nchars,
OSOCTET *  binbuf,
size_t  bufsize 
)

This function converts the given hex string to binary.

The result is stored in the given binary buffer. Any whitespace characters in the string are ignored.

Parameters:
hexstr Hex character string to convert.
nchars Number of characters in string. If zero, characters are read up to null-terminator.
binbuf Buffer to hold converted binary data.
bufsize Size of the binary data buffer.
Returns:
Number of bytes or negative status value if fail.

EXTERNRT int rtxHexCharsToBinCount ( const char *  hexstr,
size_t  nchars 
)

This function returns a count of the number of bytes the would result from the conversion of a hexadecimal character string to binary.

Any whitespace characters in the string are ignored.

Parameters:
hexstr Hex character string to convert.
nchars Number of characters in string. If zero, characters are read up to null-terminator.
Returns:
Number of bytes or negative status value if fail.

EXTERNRT int rtxInt64ToCharStr ( OSINT64  value,
char *  dest,
size_t  bufsiz,
char  padchar 
)

This function converts a signed 64-bit integer into a character string.

It is similar to the C itoa function.

Parameters:
value Integer to convert.
dest Pointer to destination buffer to receive string.
bufsiz Size of the destination buffer.
padchar Left pad char, set to zero for no padding.
Returns:
Number of characters or negative status value if fail.

EXTERNRT int rtxIntToCharStr ( OSINT32  value,
char *  dest,
size_t  bufsiz,
char  padchar 
)

This function converts a signed 32-bit integer into a character string.

It is similar to the C itoa function.

Parameters:
value Integer to convert.
dest Pointer to destination buffer to receive string.
bufsiz Size of the destination buffer.
padchar Left pad char, set to zero for no padding.
Returns:
Number of characters or negative status value if fail.

EXTERNRT char* rtxStrcat ( char *  dest,
size_t  bufsiz,
const char *  src 
)

This function concatanates the given string onto the string buffer.

It is similar to the C strcat function except more secure because it checks for buffer overrun.

Parameters:
dest Pointer to destination buffer to receive string.
bufsiz Size of the destination buffer.
src Pointer to null-terminated string to copy.
Returns:
Pointer to destination buffer or NULL if copy failed.

EXTERNRT char* rtxStrcpy ( char *  dest,
size_t  bufsiz,
const char *  src 
)

This function copies a null-terminated string to a target buffer.

It is similar to the C strcpy function except more secure because it checks for buffer overrun.

Parameters:
dest Pointer to destination buffer to receive string.
bufsiz Size of the destination buffer.
src Pointer to null-terminated string to copy.
Returns:
Pointer to destination buffer or NULL if copy failed.

EXTERNRT char* rtxStrdup ( OSCTXT pctxt,
const char *  src 
)

This function creates a duplicate copy of a null-terminated string.

Memory is allocated for the target string using the rtxMemAlloc function. The string is then copied into this memory block. It is similar to the C strdup function except more secure because it checks for buffer overrun.

Parameters:
pctxt Pointer to a standard context structure.
src Pointer to null-terminated string to copy.
Returns:
Pointer to destination buffer or NULL if copy failed.

EXTERNRT const char* rtxStrDynJoin ( OSCTXT pctxt,
const char *  str1,
const char *  str2,
const char *  str3,
const char *  str4,
const char *  str5 
)

This function allocates memory for and concatanates up to five substrings together into a single string.

Parameters:
pctxt Pointer to a standard context structure.
str1 Pointer to substring to join.
str2 Pointer to substring to join.
str3 Pointer to substring to join.
str4 Pointer to substring to join.
str5 Pointer to substring to join.
Returns:
Composite string consisting of all parts.

EXTERNRT const char* rtxStrJoin ( char *  dest,
size_t  bufsiz,
const char *  str1,
const char *  str2,
const char *  str3,
const char *  str4,
const char *  str5 
)

This function concatanates up to five substrings together into a single string.

Parameters:
dest Pointer to destination buffer to receive string.
bufsiz Size of the destination buffer.
str1 Pointer to substring to join.
str2 Pointer to substring to join.
str3 Pointer to substring to join.
str4 Pointer to substring to join.
str5 Pointer to substring to join.
Returns:
Composite string consisting of all parts.

EXTERNRT char* rtxStrncat ( char *  dest,
size_t  bufsiz,
const char *  src,
size_t  nchars 
)

This function concatanates the given number of characters from the given string onto the string buffer.

It is similar to the C strncat function except more secure because it checks for buffer overrun.

Parameters:
dest Pointer to destination buffer to receive string.
bufsiz Size of the destination buffer.
src Pointer to null-terminated string to copy.
nchars Number of characters to copy.
Returns:
Pointer to destination buffer or NULL if copy failed.

EXTERNRT char* rtxStrncpy ( char *  dest,
size_t  bufsiz,
const char *  src,
size_t  nchars 
)

This function copies the given number of characters from a string to a target buffer.

It is similar to the C strncpy function except more secure because it checks for buffer overrun and ensures a null-terminator is copied to the end of the target buffer if the given buffer size is greater than the number of characters being copied.

Parameters:
dest Pointer to destination buffer to receive string.
bufsiz Size of the destination buffer.
src Pointer to null-terminated string to copy.
nchars Number of characters to copy.
Returns:
Pointer to destination buffer or NULL if copy failed.

EXTERNRT int rtxUInt64ToCharStr ( OSUINT64  value,
char *  dest,
size_t  bufsiz,
char  padchar 
)

This function converts an unsigned 64-bit integer into a character string.

It is similar to the C itoa function.

Parameters:
value Integer to convert.
dest Pointer to destination buffer to receive string.
bufsiz Size of the destination buffer.
padchar Left pad char, set to zero for no padding.
Returns:
Number of characters or negative status value if fail.

EXTERNRT int rtxUIntToCharStr ( OSUINT32  value,
char *  dest,
size_t  bufsiz,
char  padchar 
)

This function converts an unsigned 32-bit integer into a character string.

It is similar to the C itoa function.

Parameters:
value Integer to convert.
dest Pointer to destination buffer to receive string.
bufsiz Size of the destination buffer.
padchar Left pad char, set to zero for no padding.
Returns:
Number of characters or negative status value if fail.