sysconf(3) Obtiene información de configuración en tiempo de ejecución

SINOPSIS

#include <unistd.h>


long int sysconf(int nombre);

DESCRIPCIÓN

sysconf() proporciona una forma de que la aplicación determine ciertos valores para límites del sistema u opciones, en tiempo de ejecución.

Las macros equivalentes definidas en <unistd.h> sólo pueden dar valores conservativos. Si una aplicación quiere conocer exactamente valores sujetos a cambio, puede llamar a sysconf(), que le dará resultados más liberales.

Para obtener información sobre un fichero particular, vea fpathconf() o pathconf().

Se admiten los siguientes valores para nombre. Primero, los valores compatibles con POSIX1.:

_SC_ARG_MAX
La longitud máxima de los argumentos para la familia de funciones exec(). La macro correspondiente es ARG_MAX.
_SC_CHILD_MAX
El número de procesos simultáneos por cada id. de usuario. La macro correspondiente es CHILD_MAX.
_SC_CLK_TCK
El número de pulsos de reloj por segundo. La macro correspondiente era CLK_TCK. Esta macro está obsoleta en la actualidad. (Observe que la macro CLOCKS_PER_SEC no proporciona información: debe ser igual a 1000000.)
_SC_STREAM_MAX
El máximo número de flujos que un proceso puede tener abiertos en cualquier momento. La macro correspondiente POSIX es STREAM_MAX. La macro de C estándar correspondiente es FOPEN_MAX.
_SC_TZNAME_MAX
El máximo número de bytes en un nombre de huso horario. La macro correspondiente es TZNAME_MAX.
_SC_OPEN_MAX
El número máximo de ficheros que un proceso puede tener abiertos en cualquier momento. La macro correspondiente es OPEN_MAX.
_SC_JOB_CONTROL
Esto indica si se admite el control de trabajos al estilo POSIX. La macro correspondiente es _POSIX_JOB_CONTROL.
_SC_SAVED_IDS
Esto indica si un proceso tiene un SUID salvado y un SGID salvado. La macro correspondiente es _POSIX_SAVED_IDS.
_SC_VERSION
Indica el año y el mes en los que se aprobó el estándar POSIX.1, en el formato YYYYMML.El valor 199009L indica la revisión de Septiembre de 1990. La macro correspondiente es _POSIX_VERSION.

A continuación, los valores de POSIX.2:

_SC_BC_BASE_MAX
Indica el valor máximo de obase aceptado por la utilidad bc(1). La macro correspondiente es BC_BASE_MAX.
_SC_BC_DIM_MAX
Indica el máximo valor de los elementos permitidos en un vector por la utilidad bc(1). La macro correspondiente es BC_DIM_MAX.
_SC_BC_SCALE_MAX
Indica el valor máximo de scale permitido por bc(1). La macro correspondiente es BC_SCALE_MAX.
_SC_BC_STRING_MAX
Indica la longitud máxima de una cadena de caracteres aceptada por bc(1). La macro correspondiente es BC_STRING_MAX.
_SC_COLL_WEIGHTS_MAX
Indica el máximo número de pesos que pueden ser asignados a una entrada de la palabra clave LC_COLLATE order en el fichero de definición de localizaciones. La macro correspondiente es COLL_WEIGHTS_MAX.
_SC_EXPR_NEST_MAX
Es el número máximo de expresiones que pueden anidarse entre paréntesis en expr(1). La macro correspondiente es EXPR_NEST_MAX.
_SC_LINE_MAX
La longitud máxima de una línea de entrada para un programa, bien de la entrada estándar, bien de un fichero. Esto incluye espacio para un salto de línea final. La macro correspondiente es LINE_MAX.
_SC_RE_DUP_MAX
El número máximo de ocurrencias repetidas de una expresión regular cuando se emplea la notación interna \{m,n\}. La macro correspondiente es RE_DUP_MAX.
_SC_2_VERSION
Indica la versión del estándar POSIX.2 en el formato de YYYYMML. La macro correspondiente es POSIX2_VERSION.
_SC_2_DEV
Indica si se admiten las facilidades de desarrollo POSIX.2 para el lenguaje C. La macro correspondiente es POSIX2_C_DEV.
_SC_2_FORT_DEV
Indica si se admiten las utilidades de desarrollo POSIX.2 para FORTRAN. La macro correspondiente es POSIX2_FORT_RUN.
_SC_2_FORT_RUN
Indica si se soportan las utilidades POSIX.2 para el FORTRAN en tiempo de ejecución. la macro correspondiente es POSIX2_FORT_RUN.
_SC_2_LOCALEDEF
Indica si se admite la creación POSIX.2 de localizaciones a través de localedef(1). La macro correspondiente es _POSIX2_LOCALEDEF.
_SC_2_SW_DEV
Indica si se soportan las utilidades de desarrollo de software POSIX.2. La macro correspondiente es POSIX2_SW_DEV.

SUSv2 también lista

_SC_PAGESIZE _SC_PAGE_SIZE
El tamaño de una página (en bytes).

Estos valores también existen pero pueden no ser estándares.

_SC_PHYS_PAGES
El número de páginas de memoria física. Dése cuenta que es posible que el resultado del producto de este valor y el valor de _SC_PAGE_SIZE se desborde.
_SC_AVPHYS_PAGES
El número de páginas de memoria física actualmente disponibles.

VALOR DEVUELTO

Si name no es válido, se devuelve -1, y a errno se le asigna el valor EINVAL. En caso contrario, el valor devuelto es el valor del recurso del sistema, 1 si una opción solicitada está disponible, 0 si no, o -1 en caso de error, y la variable errno se deja sin modificar.

CONFORME A

POSIX.1.

FALLOS

Es difícil usar ARG_MAX porque no se especifica cuánto del espacio de argumentos para exec() consumen las varables de entorno del usuario.

Algunos valores devueltos pueden ser enormes. No son apropiados para reservar memoria.