|| FreeBSD Library Functions Manual
duplicate an locale
Standard C Library (libc, -lc)
#include < xlocale.h>
duplocale( locale_t locale);
Duplicates an existing
returning a new
that refers to the same locale values but has an independent internal state. Various functions, such as
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
associated with the current thread by
. 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
STANDARDS This function conforms to IEEE Std 1003.1-2008 (“POSIX.1”).
should make a copy of the
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.