Función de biblioteca C - setlocale ()
Descripción
La función de la biblioteca C char *setlocale(int category, const char *locale) establece o lee información dependiente de la ubicación.
Declaración
A continuación se muestra la declaración de la función setlocale ().
char *setlocale(int category, const char *locale)
Parámetros
category - Esta es una constante con nombre que especifica la categoría de las funciones afectadas por la configuración regional.
LC_ALL para todo lo siguiente.
LC_COLLATEpara comparar cadenas. Consulte strcoll ().
LC_CTYPEpara clasificación y conversión de personajes. Por ejemplo, strtoupper ().
LC_MONETARY para el formato monetario de localeconv ().
LC_NUMERIC para separador decimal de localeconv ().
LC_TIME para el formato de fecha y hora con strftime ().
LC_MESSAGES para las respuestas del sistema.
locale - Si la configuración regional es NULL o la cadena vacía "", los nombres de las configuraciones regionales se establecerán a partir de los valores de las variables de entorno con los mismos nombres que las categorías anteriores.
Valor devuelto
Una llamada exitosa a setlocale () devuelve una cadena opaca que corresponde al conjunto de configuraciones regionales. El valor de retorno es NULL si la solicitud no se puede cumplir.
Ejemplo
El siguiente ejemplo muestra el uso de la función setlocale ().
#include <locale.h>
#include <stdio.h>
#include <time.h>
int main () {
time_t currtime;
struct tm *timer;
char buffer[80];
time( &currtime );
timer = localtime( &currtime );
printf("Locale is: %s\n", setlocale(LC_ALL, "en_GB"));
strftime(buffer,80,"%c", timer );
printf("Date is: %s\n", buffer);
printf("Locale is: %s\n", setlocale(LC_ALL, "de_DE"));
strftime(buffer,80,"%c", timer );
printf("Date is: %s\n", buffer);
return(0);
}
Compilemos y ejecutemos el programa anterior que producirá el siguiente resultado:
Locale is: en_GB
Date is: Fri 05 Dec 2014 10:35:02 UTC
Locale is: de_DE
Date is: Fr 05 Dez 2014 10:35:02 UTC