En informática , las funciones de localización de C son un grupo de funciones en el lenguaje de programación C que implementan rutinas de localización básicas. [1] [2] Las funciones se utilizan en programas multilingües para adaptarse al lugar específico. En particular, se puede modificar la forma de mostrar los números y la moneda. Estos ajustes afectan el comportamiento de las funciones de entrada / salida en la biblioteca estándar de C. [3]
Resumen de funciones
Las funciones y tipos de localización de C se definen en locale.h ( encabezado clocale en C ++). [4] [5]
Función | Descripción |
---|---|
setlocale | establece y obtiene la configuración regional C actual |
localeconv | devuelve detalles de formato numérico y monetario de la configuración regional actual |
Crítica
Las funciones de localización estándar de C son criticadas porque el estado de localización se almacena globalmente. Esto significa que en un programa dado, todas las operaciones que involucran una configuración regional pueden usar solo una configuración regional a la vez. Como resultado, es muy difícil implementar programas que usen más de una configuración regional. [6]
Las funciones alteran el comportamiento de printf / scanf / strtod, que a menudo se utilizan para escribir datos guardados en un archivo o en otros programas. El resultado es que un archivo guardado en un entorno local no será legible en otro entorno local, o no será legible en absoluto debido a suposiciones como "los números terminan en comas". La mayoría del software a gran escala fuerza la configuración regional a "C" (u otro valor fijo) para solucionar estos problemas.
Ejemplo
#include #include #include int main ( void ) { / * La configuración regional se establece en "C" antes de esto. Esta llamada lo establece en la "configuración regional actual" leyendo las variables de entorno: * / setlocale ( LC_ALL , "" ); const struct lconv * const currentlocale = localeconv (); printf ( "En la configuración regional actual, el símbolo de moneda predeterminado es:% s \ n " , currentlocale -> currency_symbol ); return EXIT_SUCCESS ; }
Ver también
Referencias
- ^ Especificación ISO / IEC 9899: 1999 (PDF) . pag. 204, § 7.11 Localización .
- ^ Prata, Stephen (2004). C primer plus . Sams Publishing. Apéndice B, Sección V: La biblioteca estándar ANSI C con adiciones C99. ISBN 0-672-32696-5.
- ^ "ISO / IEC 9899: 201x" (PDF) . 12 de abril de 2011. p. 181. Archivado desde el original (PDF) el 29 de marzo de 2018.
- ^ "locale.h" . utas.edu.au . infosys . Consultado el 14 de septiembre de 2011 . CS1 maint: parámetro desalentado ( enlace )
- ^ "openbsd / src" . GitHub . Consultado el 9 de abril de 2018 .
- ^ "La configuración regional C estándar y la configuración regional C ++ estándar" . Rogue Wave Software, Inc. 1996.