newlocale
Yeni bir locale oluşturur.
Syntax
locale_t newlocale(int category_mask, const char* locale, locale_t base);
Params
- category_mask: Bir katagori seçilir.
- locale: Local adı verilir. Örn:
en_US.UTF-8
,C
eğerNULL
olursa yeni oluşturur. - base: Sıfır olarak tanımlanır.
Kategori Mask Listesi:
- LC_CTYPE_MASK
- LC_NUMERIC_MASK
- LC_TIME_MASK
- LC_COLLATE_MASK
- LC_MONETARY_MASK
- LC_MESSAGES_MASK
- LC_PAPER_MASK
- LC_NAME_MASK
- LC_ADDRESS_MASK
- LC_TELEPHONE_MASK
- LC_MEASUREMENT_MASK
- LC_IDENTIFICATION_MASK
- LC_ALL_MASK
example.cpp
#include <stdio.h>
#include <locale.h>
int main(int argc, char** argv)
{
locale_t loc = newlocale(LC_ALL_MASK, "en_US.UTF-8", (locale_t)0);
if(!loc)
{
printf("newlocale error\n");
return -1;
}
return 0;
}
duplocale
Verilen locale_t
nesnesinin kopyasını oluştur. Başarılı olursa locale_t
döner. Başarısız durumun da NULL
olarak döner.
Syntax
locale_t duplocale(locale_t dataset);
Params
- dataset:
locale_t
tipinde bir değer alır.
example.cpp
#include <stdio.h>
#include <locale.h>
int main(int argc, char** argv)
{
...
locale_t copy_loc = duplocale(loc);
if(!copy_loc)
{
printf("duplocale error\n");
return -1;
}
return 0;
}
freelocale
Oluşturulmuş locale_t
nesnelerini serbest bırakır.
Syntax
void freelocale(locale_t dataset);
Params
- dataset:
locale_t
tipinde bir değer alır.
example.cpp
#include <stdio.h>
#include <locale.h>
int main(int argc, char** argv)
{
...
freelocale(loc);
freelocale(copy_loc);
return 0;
}
uselocale
Aktif bir thread'in localini değiştirir.
Syntax
locale_t uselocale(locale_t dataset);
Params
- dataset: Eğer
LC_GLOBAL_LOCALE
verilirise thread, tekrar global locale’i kullanmaya başlar.NULL
verlirse sadece mevcut thread’in aktif locale’i döndürülür (değişiklik yapılmaz). Birlocale_t
nesnesi verilirse o locale, geçerli thread için aktif olur.
example.cpp
#include <stdio.h>
#include <locale.h>
int main(int argc, char** argv)
{
...
locale_t thread_loc = uselocale(loc);
if(!thread_loc)
{
printf("uselocale error\n");
return -1;
}
return 0;
}