|
External Development Guide: IDL Internals: String Processing |
|
Sometimes you need to make sure that the string in an IDL_STRING descriptor has a specific length. The IDL_StrEnsureLength() function can be used in this case:
void IDL_StrEnsureLength(IDL_STRING *s, int n)
where:
A pointer to the IDL_STRING that will have its length checked.
The number of characters the string must be able to contain, not including the terminating null character.
If the IDL_STRING passed already has enough room for the specified number of characters, it is not re-allocated. Otherwise, the existing string is freed and a new string of sufficient length is allocated. In either case, the slen field of the IDL_STRING will be set to the requested length.
If a new dynamic string is allocated, it will contain garbage values because IDL_StrEnsureLength() only allocates memory of the specified size, it does not copy a value into it. Therefore, the calling routine must copy a null-terminated string into the new dynamic string.
IDL Online Help (March 06, 2007)