BohYoh.comトップページへ  setlocale
C言語 標準ライブラリ アルファベット順索引 ヘッダ別索引 ホームページへ C言語講座のページ

ロケール制御関数
setlocale
ヘッダ #include <locale.h>
形 式 char *setlocale(int category, const char *locale);
機 能 setlocale関数は、categoryおよびlocale実引数による指定に従って、プログラムのロケールのうちの一部を選択する。setlocale関数は、プログラムのその時のロケール全体または一部を変更したり、問い合わせたりするために使用しても構わない。categoryの値がLC_ALLの場合、プログラムのロケール全体を指定する。categoryのその他の値は、プログラムのロケールの一部だけを指定する。
  • LC_COLLATEは、strcoll関数およびstrxfrm関数の動作に影響を与える。
  • LC_CTYPEは、文字操作関数の動作および多バイト関数の動作に影響を与える。
  • LC_MONETARYは、localeconv関数が返す金額の書式化に関する情報に影響を与える。
  • LC_NUMERICは、書式付き入出力関数および文字列変換関数のための小数点文字、並びにlocaleconv関数が返す金額以外の書式化に関する情報に影響を与える。
  • LC_TIMEは、strftime関数の動作に影響を与える。
locateの値"C"は、C翻訳に必要な最小の環境を指定する。localeの値が""の場合、処理系定義の固有の環境を指定する。その他の処理系定義の文字列をsetlocale関数の2番目の実引数として渡しても構わない。
プログラム開始時には、
  setlocale(LC_ALL、"C");
と同等のことを実行する。
いかなるライブラリ関数も、本関数を呼び出さないかのように動作する。
返却値 localeがある文字列を示すポインタであって、その選択が適切である場合、その新しいロケールにおいてその指定したcategoryと結びつけられた文字列を指すポインタを返す。選択が適切でない場合は、空ポインタを返しプログラムのロケールを変更しない。
localeとして空ポインタを渡すと、プログラムのそのときのロケールにおいて、そのcategoryと結びつけられた文字列を指すポインタを返す。この場合、プログラムのロケールは変更しない。
本関数が返す文字列を指すポインタは、その文字列の値とそれに結び付けられたカテゴリを実引数としてsetlocaleを呼び出すと、プログラムのロケールのその部分が元に戻ることが可能な文字列へのポインタとする。指された文字列をプログラムによって変更してはならない。しかし、その後の本関数の呼出しによって書き換えられる可能性がある。


BohYoh.comトップページへ