2017-02-09 7 views

Répondre

1

LC_CTYPE est une variable d'environnement. Vous pouvez utiliser n'importe laquelle des méthodes normales d'accès aux variables d'environnement, qui diffèrent selon la plateforme. Par exemple, troisième argument envp de Posix à main:

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

ou la fonction standard C89 getenv():

char *getenv(const char *name); 

Par exemple:

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

Veillez à ne pas modifier les chaînes retournées par getenv(3) , c'est un comportement indéfini. Si vous souhaitez définir LC_CTYPE, vous devez utiliser le (POSIX normalisé mais pas C normalisé) setenv(3):

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

Une façon générique est d'utiliser 'setlocale(). De la page man:

Si locale est une chaîne vide, « », chaque partie du lieu qui doit être modifié est défini en fonction des variables d'environnement .

Ainsi, vous obtenez LC_TYPE par

#include <locale.h> 
// ... 
char* lc_type= setlocale(LC_CTYPE, "");