STRXFRM(3) | Library Functions Manual | STRXFRM(3)

# NAME

`strxfrm`, `strxfrm_l` — transform a string under locale

# SYNOPSIS

`#include <string.h>`

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

size_t
`strxfrm_l`(char *dst, const char *src, size_t n, locale_t locale);

# DESCRIPTION

The idea of `strxfrm`() and `strxfrm_l`() is to “un-localize” a string: the functions transform src, storing the result in dst, such that strcmp(3) on transformed strings returns what strcoll(3) on the original untransformed strings would return.

On OpenBSD, both have the same effect as strlcpy(3), and the global locale, the thread-specific locale, and the locale argument are ignored. On other operating systems, the behaviour may depend on the `LC_CTYPE` and `LC_COLLATE` locale categories set with setlocale(3), uselocale(3), or newlocale(3).

# SEE ALSO

newlocale(3), setlocale(3), strcmp(3), strcoll(3), strlcpy(3), wcsxfrm(3)

# STANDARDS

The `strxfrm`() function conforms to ANSI X3.159-1989 (“ANSI C89”), and `strxfrm_l`() to IEEE Std 1003.1-2008 (“POSIX.1”).

# HISTORY

The `strxfrm`() function has been available since 4.3BSD-Reno, and `strxfrm_l`() since OpenBSD 6.2.

January 18, 2019 | Debian