wcsxfrm -- transform wide character string


cc . . . -lc

#include <wchar.h>

size_t wcsxfrm(wchar_t *ws1, const wchar_t *ws2, size_t n);


wcsxfrm(S) transforms a wide character string, such that the relative order (i.e., sign) of two transformed strings as determined by wcscmp(S) is the same as that determined by wcscoll(S) when applied to the same two original strings. The input string is ws2 and the output string is placed in the array pointed to by ws1. The transformed string, including the null terminator, cannot have more than n wide-character codes. Otherwise, the contents in the array ws1 are undefined.

If n is zero, ws1 can be a null pointer. The value returned by wcscoll(S) may be used to determine the minimum required size for the ws1 array.

If the memory areas pointed to by ws1 and ws2 overlap within n wide-character codes, the behavior is undefined.

Return values

wcsxfrm( ) returns the number of wide characters of the transformed string. The null terminator is not counted. If this number is n or more, the contents in the array ws1 are undefined.

If there is an error, (size_t)-1 is returned and errno is set.


wcsxfrm( ) may fail if one or more of the following is true:

At least one wide-character code in the string ws2 is not in the domain of the collating sequence.

The routine is not supported.

See also

strxfrm(S), wcscmp(S), wcscoll(S), wcscoll(S)

Standards conformance

wcsxfrm( ) is conformant with:
X/Open CAE Specification, System Interfaces and Headers, Issue 4, 1992.
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003