Character-string termination
The API that you use with the HCL Informix® GLS library might
handle string termination in either of the following ways:
- All character strings are terminated with a null character.
The null character indicates the end of the string. Such strings are called null-terminated strings. The null terminator of a multibyte string consists of one byte whose value is 0. The null terminator of a wide-character string consists of one gl_wchar_t character whose value is 0.
- Each string consists of a pointer and length that indicates the
number of bytes in the string.
Character strings that are not null-terminated are called length-terminated strings. Length-terminated strings can contain null characters, but these null characters do not indicate the end of the string.
The Informix GLS functions
that take a string argument allow you to pass this string as either
a null-terminated string or a length-terminated string. To provide
this flexibility, many Informix GLS functions
that accept a multibyte or wide-character string expect the string
to be represented with the following two arguments:
- The string itself
- The length of the string
The value that you provide for the string length tells the Informix GLS function how to
handle the associated string, as the following table shows.
String-length value | Meaning |
---|---|
IFX_GL_NULL | The Informix GLS function assumes that the string is a null-terminated string. |
>=0 | The Informix GLS function assumes that this length indicates the number of bytes in the length-terminated string. |
<0, != IFX_GL_NULL | The Informix GLS function sets the error number to the IFX_GL_PARAMERR error. |