The ifx_gl_mbsncat() function
The ifx_gl_mbsncat() function concatenates a specified number of multibyte characters in one multibyte string to another.
Syntax
#include <ifxgls.h>
...
int ifx_gl_mbsncat(mbs1, mbs1_byte_length, mbs2, mbs2_byte_length, char_limit)
gl_mchar_t *mbs1;
int mbs1_byte_length;
gl_mchar_t *mbs2;
int mbs2_byte_length;
int char_limit;
- mbs1
- A pointer to the multibyte-character string to which the function concatenates mbs2.
- mbs1_byte_length
- The integer number of bytes in the mbs1 string. If mbs1_byte_length is the value IFX_GL_NULL, the function assumes that mbs1 is a null-terminated string.
- mbs2
- A pointer to the multibyte-character string to concatenate onto mbs1.
- mbs2_byte_length
- The integer number of bytes in the mbs2 string. If mbs2_byte_length is the value IFX_GL_NULL, the function assumes that mbs2 is a null-terminated string.
- char_limit
- The maximum number of multibyte characters to read from mbs2.
Valid in client application | Valid in DataBlade® UDR |
---|---|
Yes | Yes |
Usage
The ifx_gl_mbscat() function appends mbs2 to the end of mbs1.
If mbs1 and mbs2 overlap, the results of this function are undefined. If mbs1_byte_length is equal to IFX_GL_NULL, the function null-terminates the concatenated string. Any other value of mbs1_byte_length means that the function does not null-terminate the resulting concatenated string.
Return values
- >=0
- The number of characters in the concatenated string, not including any null terminator.
- -1
- The function was not successful, and the error number is set to indicate the cause. See the Errors section.
Errors
If an error occurred, this function
returns -1 and sets the ifx_gl_lc_errno() error
number to one of the following values.
- IFX_GL_PARAMERR
- Either mbs1_byte_length is not equal to IFX_GL_NULL and is not greater than or equal to 0, or mbs2_byte_length is not equal to IFX_GL_NULL and is not greater than or equal to 0.
- IFX_GL_TERMMISMAT
- Either mbs1_byte_length is equal to IFX_GL_NULL, and mbs2_byte_length is greater than or equal to 0; or mbs1_byte_length is greater than or equal to 0, and mbs2_byte_length is equal to IFX_GL_NULL.
- IFX_GL_EILSEQ
- Either mbs1 or mbs2 contains an invalid multibyte character.
- IFX_GL_EINVAL
- Either the function cannot determine whether the last character of mbs1 is a valid multibyte character because it would need to read more than mbs1_byte_length bytes from mbs1, or the function cannot determine whether the last character of mbs2 is a valid multibyte character because it would need to read more than mbs2_byte_length bytes from mbs2.