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).