wcsxfrm(3I) manual page
Table of Contents
wcsxfrm, wsxfrm - wide character string transformation
cc
[ flag ... ] file ... -lw [ library ... ]
#include <wchar.h>
size_t wcsxfrm(wchar_t
*ws1, const wchar_t *ws2, size_t n);
size_t wsxfrm(wchar_t *ws1, const wchar_t *ws2, size_t n);
MT-Safe
The wcsxfrm() and wcsxfrm() functions transform the wide
character string pointed to by ws2 and place the resulting wide character
string into the array pointed to by ws1. The transformation is such that
if either the wcscmp(3I)
or wscmp(3I)
functions are applied to two transformed
wide strings, they return a value greater than, equal to, or less than
0, corresponding to the result of the wcscoll(3I)
or wscoll(3I)
function
applied to the same two original wide character strings. No more than n
wide-character codes are placed into the resulting array pointed to by ws1,
including the terminating null wide-character code. If n is 0, ws1 is permitted
to be a null pointer. If copying takes place between objects that overlap,
the behaviour is undefined.
wcsxfrm() and wsxfrm() return the
length of the transformed wide character string (not including the terminating
null wide-character code). If the value returned is n or more, the contents
of the array pointed to by ws1 are indeterminate.
On error, wcsxfrm() and
wsxfrm() return (size_t)-1, and set errno to indicate the error.
wcsxfrm()
and wsxfrm() may fail if:
- EINVAL
- The wide character string pointed to
by ws2 contains wide-character codes outside the domain of the collating
sequence.
- ENOSYS
- The function is not supported.
The transformation
function is such that two transformed wide character strings can be ordered
by the wcscmp() or wscmp() functions as appropriate to collating sequence
information in the program’s locale (category LC_COLLATE
).
The fact that
when n is 0, ws1 is permitted to be a null pointer, is useful to determine
the size of the ws1 array prior to making the transformation.
Because no
return value is reserved to indicate an error, an application wishing to
check for error situations should set errno to 0, call wcsxfrm() or wsxfrm(),
then check errno and if it is non-zero, assume an error has occurred.
wcscmp(3I)
, wcscoll(3I)
, wscmp(3I)
, wscoll(3I)
Table of Contents