wcsxfrm (original) (raw)
The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.
A newer edition of this document exists here
NAME
wcsxfrm - wide-character string transformation
SYNOPSIS
`#include <wchar.h>
size_t wcsxfrm(wchar_t *restrict
ws1, const wchar_t *restrict ws2,
size_t n);
`
DESCRIPTION
[CX] The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of IEEE Std 1003.1-2001 defers to the ISO C standard.
The wcsxfrm() function shall 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 shall be such that if wcscmp() is applied to two transformed wide strings, it shall return a value greater than, equal to, or less than 0, corresponding to the result of wcscoll() applied to the same two original wide-character strings. No more than n wide-character codes shall be 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 behavior is undefined.
[CX] The_wcsxfrm_() function shall not change the setting of errno if successful.
Since no return value is reserved to indicate an error, an application wishing to check for error situations should set_errno_ to 0, then call wcsxfrm(), then check errno.
RETURN VALUE
The wcsxfrm() function shall 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 unspecified.
[CX] On error, the wcsxfrm() function may set errno, but no return value is reserved to indicate an error.
ERRORS
The wcsxfrm() function may fail if:
[EINVAL]
[CX] The wide-character string pointed to by ws2 contains wide-character codes outside the domain of the collating sequence.
The following sections are informative.
EXAMPLES
None.
APPLICATION USAGE
The transformation function is such that two transformed wide-character strings can be ordered by wcscmp() 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.
RATIONALE
None.
FUTURE DIRECTIONS
None.
SEE ALSO
wcscmp(), wcscoll(), the Base Definitions volume of IEEE Std 1003.1-2001, <wchar.h>
CHANGE HISTORY
First released in Issue 4. Derived from the MSE working draft.
Issue 5
Moved from ENHANCED I18N to BASE and the [ENOSYS] error is removed.
The DESCRIPTION is updated to indicate that errno is not changed if the function is successful.
Issue 6
In previous versions, this function was required to return -1 on error.
Extensions beyond the ISO C standard are marked.
The following new requirements on POSIX implementations derive from alignment with the Single UNIX Specification:
- In the RETURN VALUE and ERRORS sections, the [EINVAL] optional error condition is added if no conversion could be performed.
The wcsxfrm() prototype is updated for alignment with the ISO/IEC 9899:1999 standard.
End of informative text.
UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
[ Main Index | XBD | XCU | XSH | XRAT]