2017-02-09 8 views

答えて

1

LC_CTYPEは環境変数です。プラットフォームに基づいて異なる環境変数にアクセスする通常の方法を使用することができます。 mainに例えば、POSIXの第三envp引数:たとえば

char *getenv(const char *name); 

int main(int argc, char **argv, char **envp); 

または標準C89 getenv()機能

#include <stdlib.h> 
char const *get_lc_ctype() 
{ 
    return getenv("LC_CTYPE"); 
} 

getenv(3)によって返された文字列を変更しないように注意してください、それは未定義の振る舞いです。あなたがLC_CTYPEを設定したい場合、あなたは(POSIX標準化ではなく、C-標準化された)setenv(3)使用する必要があります。

int set_lc_ctype(char const *new) 
{ 
    return setenv("LC_CTYPE", new, 1); 
} 
0

を一般的な方法は、「はsetlocale()を」を使用することです。 manページから :

ロケールが空の文字列、「」、 環境変数に応じて設定されている修正すべきロケールの各部分がある場合。

したがって、あなたは

#include <locale.h> 
// ... 
char* lc_type= setlocale(LC_CTYPE, ""); 
でLC_TYPEを取得します
関連する問題