Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 re-
     turned 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.0		      September	17, 2011		  FreeBSD 13.0

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | SEE ALSO | STANDARDS | BUGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=duplocale&sektion=3&manpath=FreeBSD+12.0-RELEASE>

home | help