NAME FN_string_t, fn_string_create, fn_string_destroy, fn_string_from_str, fn_string_from_str_n, fn_string_str, fn_string_from_contents, fn_string_code_set, fn_string_charcount, fn_string_bytecount, fn_string_contents, fn_string_copy, fn_string_assign, fn_string_from_strings, fn_string_from_substring, fn_string_is_empty, fn_string_compare, fn_string_compare_substring, fn_string_next_substring, fn_string_prev_substring - a character string SYNOPSIS cc [ flag ... ] file ... -lxfn [ library ... ] #include <xfn/xfn.h> FN_string_t *fn_string_create(void); void fn_string_destroy(FN_string_t *str); FN_string_t *fn_string_from_str(const unsigned char *cstr); FN_string_t *fn_string_from_str_n(const unsigned char *cstr, size_t n); const unsigned char *fn_string_str(const FN_string_t *str, unsigned int *status); FN_string_t *fn_string_from_contents(unsigned long code_set, const void *locale_info, size_t locale_info_len, size_t charcount, size_t bytecount, const void *contents, unsigned int *status); unsigned long fn_string_code_set(const FN_string_t *str, const void **locale_info, size_t *locale_info_len); size_t fn_string_charcount(const FN_string_t *str); size_t fn_string_bytecount(const FN_string_t *str); const void *fn_string_contents(const FN_string_t *str); FN_string_t *fn_string_copy(const FN_string_t *str); FN_string_t *fn_string_assign(FN_string_t *dst, const FN_string_t *src); FN_string_t *fn_string_from_strings(unsigned int *status, const FN_string_t *s1, const FN_string_t *s2, ...); FN_string_t *fn_string_from_substring(constFN_string_t *str, int first, int last); int fn_string_is_empty(const FN_string_t *str); int fn_string_compare(const FN_string_t *str1, const FN_string_t *str2, unsigned int string_case, unsigned int *status); int fn_string_compare_substring(const FN_string_t *str1, int first, int last, const FN_string_t *str2, unsigned int string_case, unsigned int *status); int fn_string_next_substring(const FN_string_t *str, const FN_string_t *sub, int index, unsigned int string_case, unsigned int *status); int fn_string_prev_substring(const FN_string_t *str, const FN_string_t *sub, int index, unsigned int string_case, unsigned int *status); DESCRIPTION The FN_string_t type is used to represent character strings in the XFN interface. It provides insulation from specific string representations. The FN_string_t supports multiple code sets. It provides creation functions for character strings of the code set of the current locale setting and a generic creation function for arbitrary code sets. The degree of support for the func- tions that manipulate FN_string_t for arbitrary code sets is implementation-dependent. An XFN implementation is required to support the ISO 646 code set; all other code sets are optional. fn_string_destroy() releases the storage associated with the given string. fn_string_create() creates an empty string. fn_string_from_str() creates an FN_string_t object from the given null terminated string based on the code set of the current locale setting. The number of characters in the string is determined by the code set of the current locale setting. fn_string_from_str_n() is like fn_string_from_str() except only n characters from the given string are used. fn_string_str() returns the contents of the given string str in the form of a null terminated string in the code set and current locale setting. fn_string_from_contents() creates an FN_string_t object using the specified code set code_set, locale information locale_info, and data in the given buffer contents. bytecount specifies the number of bytes in contents and charcount specifies the number of characters represented by contents. fn_string_code_set() returns the code set associated with the given string object and, if present, the locale informa- tion in locale_info. fn_string_charcount() returns the number of characters in the given string object. fn_string_bytecount() returns the number of bytes used to represent the given string object. fn_string_contents() returns a pointer to the contents of the given string object. fn_string_copy() returns a copy of the given string object. fn_string_assign() makes a copy of the string object src and assigns it to dst, releasing any old contents of dst. A pointer to the same object as dst is returned. fn_string_from_strings() is a function that takes a variable number of arguments (minimum of 2), the last of which must be NULL (0); it returns a new string object composed of the left to right concatenation of the given strings, in the given order. The support for strings with different code sets and/or locales as arguments to a single invocation of fn_string_from_strings() is implementation-dependent. fn_string_from_substring() returns a new string object con- sisting of the characters located between first and last inclusive from str. Indexing begins with 0. If last is FN_STRING_INDEX_LAST or exceeds the length of the string, the index of the last character of the string is used. fn_string_is_empty() returns whether str is an empty string. Comparison of two strings must take into account code set and locale information. If strings are in the same code set and same locale, case sensitivity is applied according to the case sensitivity rules applicable for the code set and locale; case sensitivity may not necessarily be relevant for all string encodings. If string_case is non-zero, case is significant and equality for strings of the same code set is defined as equality between byte-wise encoded values of the strings. If string_case is zero, case is ignored and equal- ity for strings of the same code set is defined using the definition of case-insensitive equality for the specific code set. Support for comparison between strings of dif- ferent code sets, or lack thereof, is implementation- dependent. fn_string_compare() compares strings str1 and str2 and returns 0 if they are equal, non-zero if they are not equal. If two strings are not equal, fn_string_compare() returns a positive value if the difference of str2 precedes that of str1 in terms of byte-wise encoded value (with case- sensitivity taken into account when string_case is non- zero), and a negative value if the difference of str1 precedes that of str2, in terms of byte-wise encoded value (with case-sensitivity taken into account when string_case is non-zero). Such information (positive versus negative return value) may be used by applications that use strings of code sets in which ordering is meaningful; this informa- tion is not of general use in internationalized environ- ments. fn_string_compare_substring() is similar to fn_string_compare() except that fn_string_compare_substring() compares characters between first and last inclusive of str2 with str1. Comparison of strings with incompatible code sets returns a negative or positive value (never 0) depending on the implementation. fn_string_next_substring() returns the index of the next occurrence of sub at or after index in the string str. FN_STRING_INDEX_NONE is returned if sub does not occur. fn_string_prev_substring() returns the index of the previous occurrence of sub at or before index in the string str. FN_STRING_INDEX_NONE is returned if sub does not occur. In both of these functions, string_case specifies whether the search should take case-sensitivity into account. ERRORS fn_string_str() returns 0 and sets status to FN_E_INCOMPATIBLE_CODE_SETS if the given string's represen- tation cannot be converted into the code set of the current locale setting. It is implementation-dependent which code sets can be converted into the code set of the current locale. Code set mismatches that occur during concatenation, searches, or comparisons are resolved in an implementation- dependent way. When an implementation discovers that argu- ments to substring searches and comparison operations have incompatible code sets, it sets status to FN_E_INCOMPATIBLE_CODE_SETS. In such cases, fn_string_from_strings() returns 0. The returned value for comparison operations when there is code set or locale incompatibility is either negative or positive (greater than 0); it is never 0. fn_string_from_contents() returns 0 and status is set to FN_E_INCOMPATIBLE_CODE_SETS if the supplied code set and/or locale information are not supported by the XFN implementa- tion. ATTRIBUTES See attributes (5) for descriptions of the following attri- butes: ____________________________________________________________ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | |_____________________________|_____________________________| | MT-Level | MT-Safe | |_____________________________|_____________________________| SEE ALSO xfn(3XFN), attributes(5) NOTES The implementation of XFN in this Solaris release is based on the X/Open preliminary specification. It is likely that there will be minor changes to these interfaces to reflect changes in the final version of this specification. The next minor release of Solaris will offer binary compatibility for applications developed using the current interfaces. As the interfaces evolve toward standardization, it is possible that future releases of Solaris will require minor source code changes to applications that have been developed against the preliminary specification.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |