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.

Copyright© 2019 HCL Technologies Limited