DUPLOCALE(3)           FreeBSD Library Functions Manual           DUPLOCALE(3)
NAME
     duplocale - duplicate an locale
LIBRARY
     Standard C Library (libc, -lc)
SYNOPSIS
     #include <locale.h>
     locale_t
     duplocale(locale_t locale);
DESCRIPTION
     Duplicates an existing locale_t returning a new locale_t that refers to
     the same locale values but has an independent internal state.  Various
     functions, such as mblen(3) require a persistent state.  These functions
     formerly used static variables and calls to them from multiple threads
     had undefined behavior.  They now use fields in the locale_t associated
     with the current thread by uselocale(3).  These calls are therefore only
     thread safe on threads with a unique per-thread locale.  The locale
     returned by this call must be freed with freelocale(3).
SEE ALSO
     freelocale(3), localeconv(3), newlocale(3), querylocale(3), uselocale(3),
     xlocale(3)
STANDARDS
     This function conforms to IEEE Std 1003.1-2008 ("POSIX.1").
BUGS
     Ideally, uselocale(3) should make a copy of the locale_t implicitly to
     ensure thread safety, and a copy of the global locale should be installed
     lazily on each thread.  The FreeBSD implementation does not do this, for
     compatibility with Darwin.
FreeBSD 13.1-RELEASE-p6       September 17, 2011       FreeBSD 13.1-RELEASE-p6
man2web Home...