The ifx_gl_mbsntsbytes() function
The ifx_gl_mbsntsbytes() function determines the number of bytes in a multibyte string. It ignores trailing spaces.
Syntax
#include <ifxgls.h>
...
int ifx_gl_mbsntsbytes(mbs, mbs_byte_length)
gl_mchar_t *mbs;
int mbs_byte_length;
- mbs
- A pointer to the multibyte-character string whose length the function determines.
- mbs_byte_length
- The integer number of bytes in the mbs string. If mbs_byte_length is the value IFX_GL_NULL, the function assumes that mbs is a null-terminated string.
Valid in client application | Valid in DataBlade UDR |
---|---|
Yes | Yes |
Usage
The ifx_gl_mbsntsbytes() function returns the number of bytes in mbs, not including the trailing-space characters. The trailing-space characters are all characters that the blank character class of the current locale defines. For more information about the blank class, see Character classification.
Space characters that are embedded
in the string at any place except the end of the string are included
in the count. For example, the following call to ifx_gl_mbsntsbytes() returns
a value of 10 (the number of bytes in the string “A1A2B1B2B3 cd
E1”, where A1A2 is the multibyte
character of 2 bytes, B1B2B3 is the
multibyte character of 3 bytes, and E1 is the multibyte
character of 1 byte, and s represents a single-byte horizontal
white space character):
ifx_gl_mbsntsbytes("A1A2B1B2B3scdsE1ssssss", mbs_byte_length)
Return values
- >=0
- The number of bytes in the mbs string, not including any trailing space.
- -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
- The mbs_byte_length is not equal to IFX_GL_NULL and is not greater than or equal to 0.
- IFX_GL_EILSEQ
- The *mbs value contains an invalid multibyte character.
- IFX_GL_EINVAL
- The function cannot determine whether the last character of mbs is a valid multibyte character because it would need to read more than mbs_byte_length bytes from mbs.