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.

Copyright© 2019 HCL Technologies Limited