[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    strxfrm(3C) manual page Table of Contents

Name

strxfrm - string transformation

Synopsis

#include <string.h>

size_t strxfrm(char *dst, const char *src, size_t n);

MT-Level

Safe with exceptions

Description

strxfrm() transforms the string src and places the resulting string into the array dst. If strcmp() is applied to two transformed strings, it will return the same result as strcoll() applied to the same two original strings. The transformation is based on the program’s locale for category LC_COLLATE (see setlocale(3C) ).

No more than n bytes will be placed into the resulting array pointed to by dst, including the terminating null character. If n is 0 and dst is a NULL parameter, strxfrm() returns the number of bytes required for the transformed string. If copying takes place between objects that overlap, the behavior is undefined.

strxfrm() returns the length of the transformed string (not including the terminating null character). If the value returned is n or more, the contents of the array dst are indeterminate.

Return Values

On failure, strxfrm() returns (size_t)-1.

Examples

The value of the following expression is the size of the array needed to hold the transformation of the string pointed to by s.

1 + strxfrm(NULL, s, 0);

Files

/usr/lib/locale/locale/LC_COLLATE
LC_COLLATE database for locale

See Also

colltbl(1M) , setlocale(3C) , strcoll(3C) , string(3C) , wscoll(3I) , environ(5)

Notes

strxfrm can be used safely in a multi-thread application, as long as setlocale(3C) is not being called to change the locale.


Table of Contents