stdlib

abortabsacosatexitatoi
bsearchcallocdivexitgetenv
labsldivmallocmblenmbstowcs
mbtowcqsortrandreallocsrand
strtodstrtolstrtoulsystemwctomb
atol

Función abort

void abort(void);

Ocasiona una terminación anormal del programa, al menos que la señal SIGABRT está siendo capturado y un controlador de señales no regresa. Si streams abiertos de salida son despejados o streams abiertos son cerrados o ficheros temporales son borrados es cosa de la definición de la implementación. Una forma definida de la implementación del estado «terminación sin éxito» es retornado al entorno local por medio de la llamada a la función raise(SIGABRT). La función abort no puede regresar a su invocador.

Valor de retorno:

La función abort no retorna ningún valor.

Ejemplo:

Función abs

int abs(int num);

Calcula el valor absoluto de un entero num. Si el resultado no puede ser representado, el comportamiento no está definido.

Valor de retorno:

La función abs devuelve el valor absoluto.

Ejemplo:

Función acos

double acos(double x);

Calcula el valor principal del arco coseno de x. Puede producirse un error de dominio para los argumentos que no estén en el intervalo (-1, +1).

Valor de retorno:

La función acos retorna el arco coseno en el intervalo (0, PI) radianes.

Ejemplo:

Función atexit

int atexit(void (*func)(void));

Registra la función apuntada por func, para ser llamada sin argumentos al momento de terminación normal del programa. La implementación deberá aceptar el registro de al menos 32 funciones.

Valor de retorno:

La función atexit retorna cero si el registro tiene éxito, un valor distinto a cero si falla.

Ejemplo:

Función atof

double atof(const char *numPtr);

Convierte la porción inicial de la cadena apuntada por numPtr a una representación de double.

Valor de retorno:

La función atof retorna el valor convertido.

Ejemplo:

Función atoi

int atoi(const char *numPtr);

Convierte la porción inicial de la cadena apuntada por numPtr a una representación de int.

Valor de retorno:

La función atoi devuelve el valor convertido.

Ejemplo:

Función atol

long int atol(const char *numPtr);

Convierte la porción inicial de la cadena apuntada por numPtr a una representación de long.

Valor de retorno:

La función atol retorna el valor convertido.

Ejemplo:

void *bsearch(const void *clave, const void base,
size_t nmemb, size_t tamanyo,
int (comparar)(const void *, const void *));

Busca un array de nmemb objetos, el elemento inicial del que es apuntado por base, para un elemento que empareje el objeto apuntado por clave. El tamaño de cada elemento del array está especificado por tamanyo. La función de la comparación apuntada por comparar es llamada con dos argumentos que apuntan al objeto clave y a un elemento del array, en ese orden. La función retornará un entero menor, igual, o mayor que cero si el objeto clave es considerado, respectivamente a ser menor, igual, o mayor que el elemento del array. El array consistirá de: todos los elementos que comparan a ser menores, iguales, o mayores que el objeto clave, en ese orden.

Valor de retorno:

La función bsearch retorna un puntero a un elemento emparejado del array, o a un puntero nulo si no encuentra ninguna pareja. Si dos elementos comparados son iguales, el elemento emparejado no es especificado.

Ejemplo:

Función calloc

void *calloc(size_t nmemb, size_t tamanyo);

Adjudica espacio para un array de nmemb objetos, cada cual tiene como tamaño tamanyo. El espacio es inicializado a cero todos los bits.

Valor de retorno:

La función calloc retorna o bien un puntero nulo o bien un puntero al espacio adjudicado.

Ejemplo:

Función div

div_t div(int num, int denom);

Calcula el cociente y resto de la división del numerador num entre el denominador denom. Si la división es inexacta, el cociente resultante es el entero de menor magnitud que es el más próximo al cociente algebraico. Si el resultado no puede ser representado, el comportamiento no está definido; de lo contrario, quot * denom + rem igualará num.

Valor de retorno:

La función div devuelve la estructura de tipo div_t, conteniendo el cociente y el resto. La estructura contiene los siguientes miembros, en cualquier orden:

int quot;/* cociente /
int rem;/ resto */

Ejemplo:

Función exit

void exit(int estado);

Ocasiona una terminación normal del programa. Si se ejecuta más de una llamada de la función exit, el comportamiento no está definido. Primeramente, todas las funciones registradas por la función atexit son llamadas, en el orden inverso de sus registros. Cada función es llamada tantas veces como fue registrada. Acto seguido, todos los streams abiertos con datos almacenados aún sin escribir son despejados, todos los streams abiertos son cerrados, y todos los ficheros creados por la función tmpfile son borrados.

Valor de retorno:

La función exit no devuelve ningún valor.

Ejemplo:

Función getenv

char *getenv(const char *nombre);

Busca una «lista de entorno«, proporcionado por el entorno local, para una cadena que empareje la cadena apuntada por nombre. El conjunto de nombres del entorno y el método para alterar la lista de entorno están definidos según la implementación.

Valor de retorno:

La función getenv devuelve un puntero a la cadena asociado con el miembro emparejado de la lista. La cadena que apunta a ello no será modificado por el programa, pero puede ser sobreescrito por una llamada posterior a la función getenv. Si el nombre especificado no puede ser encontrado, devolvera un puntero nulo.

Ejemplo:

Función labs

long int labs(long int num);

Similar a abs, excepto que el argumento es de tipo long int.

Valor de retorno:

La función labs retorna el valor absoluto (de tipo long int).

Ejemplo:

Función ldiv

ldiv_t ldiv(long int num, long int denom);

Similar a la función div, excepto que los argumentos son de tipo long int.

Valor de retorno:

La función ldiv devuelve una estructura de tipo ldiv_t, conteniendo el cociente y el resto (de tipo long int).

Ejemplo:

Función malloc

void *malloc(size_t tamanyo);

Adjudica espacio para un objeto, cuyo tamaño es especificado por tamanyo y cuyo valor es indeterminado.

Valor de retorno:

La función malloc devuelve un puntero nulo o un puntero al espacio adjudicado.

Ejemplo:

Función mblen

int mblen(const char *cad, size_t n);

Si cad no es un puntero nulo, la función mblen determina el número de bytes contenidos en el carácter multibyte apuntado por cad. Si cad es un puntero nulo, la función mblen devuelve un valor distinto o igual a cero, si los códigos del carácter multibyte, respectivamente, pueden ser o no ser codificados.

Valor de retorno:

Si cad no es un puntero nulo, la función mblen devuelve o bien 0 (si cad apunta a un carácter nulo), o bien el número de bytes que contiene el carácter multibyte (si los siguientes n o menores bytes forman un carácter multibyte válido), o -1 (si no forman un carácter multibyte válido).

Ejemplo:

Función mbstowcs

size_t mbstowcs( wchar_t* dst, const char* src, size_t len);

Convierte una cadena de caracteres multibyte de la matriz cuyo primer elemento es señalado por src a su representación de caracteres extendidos. Los caracteres convertidos se almacenan sucesivamente en la matriz a la que apunta dst. No se escribiran más de len caracteres extendidos en la matriz de destino.

Cada carácter se convierte como si fuera una llamada a mbtowc, excepto que el estado de conversión de mbtowc no se ve afectado. La conversión se detiene si:

  • El carácter nulo multibyte fue convertido y almacenado.
  • Se encontró un caracter multibyte no válido (en la actual localidad C).
  • El ancho del carácter que se almacenará excedería el tamaño len.

Valor de retorno:

En caso de éxito, devuelve el número de caracteres extendidos, excluyendo la terminación L'\0' , escrita en la matriz de destino.

En caso de error de conversión (si se encontró un carácter multibyte no válido), devuelve static_cast<size_t> (-1) .

Ejemplo:

Función mbtowc

int mbtowc(wchar_t *wcharPtr, const char *cad, size_t n);

Si cad no es un puntero nulo, la función mbtowc determina el número de bytes contenidos en el carácter multibyte apuntado por cad. Entonces se determina el código para el valor del tipo wchar_t que corresponde a un carácter multibyte. (El valor del código correspondiendo al carácter nulo si este es cero). Si el carácter multibyte es válido y wcharPtr no es un puntero nulo, la función mbtowc guarda el código en el objeto apuntado por wcharPtr. Al menos se examinaran los n bytes del array apuntado por cad.

Valor de retorno:

Si cad es un puntero nulo, la función mblen devuelve un valor distinto o igual a cero, si los códigos del carácter multibyte, respectivamente, pueden ser o no ser codificados. Si cad no es un puntero nulo, la función mblen devolvera o bien 0 (si cad apunta a un carácter nulo), o el número de bytes que son contenidos en el carácter multibyte (si los siguientes n o menos bytes forman un carácter multibyte válido), o -1 (si no forman un carácter multibyte válido). En ningún caso, el valor devuelto será mayor que n o el valor de la macro MB_CUR_MAX.

Ejemplo:

Función qsort

void qsort(void base, size_t nmemb, size_t tamanyo, int (comparar)(const void *, const void *));

Ordena un array de nmemb objetos. El elemento inicial es apuntado por base. El tamaño de cada elemento del array está especificado por tamanyo. El contenido del array es ordenado en el orden de ascendente según una función de comparación apuntada por comparar, la cual es llamada con dos argumentos que apuntan a los objetos a ser comparados. La función retornará un entero menor, igual, o mayor de cero si el primer objeto es considerado, respectivamente menor, igual, o mayor que el segundo. Si los dos elementos son iguales, su orden en el array ordenado no está definido.

Valor de retorno:

La función qsort no devuelve ningún valor.

Ejemplo:

Función rand

La función rand calcula una secuencia de números enteros pseudo-aleatorios entre 0 y RAND_MAX.

Valor de retorno:

La función rand devuelve un entero pseudo-aleatorio.

Ejemplo:

Función realloc

void *realloc(void *ptr, size_t tamanyo);

Cambia el tamaño del bloque de memoria apuntado por ptr. La función puede mover el bloque de memoria a una nueva ubicación (cuya dirección es devuelto por la función).

El contenido del bloque de memoria se conserva hasta el menor de los antiguos y los nuevos tamaños, incluso si el bloque se mueve a una nueva ubicación. Si el nuevo tamaño tamanyo es más grande, el valor de la recién porción asignada es indeterminado.

En caso de que ptr sea un puntero null, la función se comporta como malloc, la asignación de un nuevo bloque en tamanyo de bytes y devuelve un puntero a su principio.

Valor de retorno:

La función realloc devuelve o bien un puntero nulo o bien un puntero posiblemente hacia al espacio adjudicado mudado.

Ejemplo:

Función srand

void srand(unsigned int semilla);

Usa el argumento semilla para una secuencia nueva de números pseudo-aleatorios que seran devueltos por llamadas posteriores a rand. Si srand es llamado con el mismo valor que el argumento semilla, la secuencia de números pseudo-aleatorios se repetirá. Si llamamos a rand antes de que se hayan hecho cualquier llamada a srand, se generará la misma secuencia como si srand fuera llamada por primera vez con el valor 1 para semilla.

Las siguientes funciones definen una implementación portable de rand y srand.

Valor de retorno:

La función srand no devuelve ningún valor.

Ejemplo:

Función strtod

double strtod(const char *numPtr, char **finalPtr);

Convierte la porción inicial de la cadena apuntada por numPtr a una representación de long int. Primero descompone la cadena de entrada en tres partes: una secuencia inicial, posiblemente vacía, de caracteres de espacio blanco (tal como es especificado por la macro isspace), una secuencia fuente asemejándose a una constante de coma flotante; y una cadena final de uno o más caracteres irreconocidos, incluyendo el carácter nulo final de la cadena de entrada. Entonces, intenta convertir la secuencia fuente a un número de coma flotante, devolviendo el resultado.

La forma expandida de la secuencia fuente es un signo, positivo o negativo, opcional, siguiendo una secuencia de dígitos opcionalmente conteniendo un carácter de la coma decimal (suele ser un punto), siguiendo un parte exponente
opcional, pero sin incluir un sufijo de coma flotante. La secuencia fuente está definida como la subsecuencia inicial más larga de la cadena de entrada, comenzando por el primer carácter que no sea un espacio blanco. La secuencia fuente no contiene caracteres si la cadena de entrada está vacía o consiste solamente de un espacio en blanco, o si el primer carácter, no es un espacio blanco, o distinto a un signo, un dígito, o un carácter de la coma decimal (o punto decimal).

Si la secuencia fuente tiene la forma esperada, la secuencia de caracteres comenzando por el primer dígito o el carácter de la coma decimal (cualquiera que aparezca primero) será interpretada como una constante de coma flotante, excepto que el carácter de la coma decimal sea usado en lugar de la coma, y si no aparece la parte exponente ni el carácter de la coma flotante, se asume que es una coma decimal el que sigue al último dígito de la cadena. Si la secuencia fuente comienza con un signo negativo, el valor resultante de la conversión es negativo. Un puntero a la cadena final es guardado en el objeto apuntado por finalPtr, con tal de que finalPtr no sea nulo.

Si la secuencia fuente está vacía o no tiene la forma esperada, no se realizará ninguna conversión; el valor numPtr se guardado en el objeto apuntado por finalPtr, con tal de que finalPtr no sea nulo.

Valor de retorno:

Si existiera, la función strtod devuelve el valor convertido. Si no se pudo realizar ninguna conversión, devolverá cero. Si el valor correcto no pertenece al intervalo de valores representables, HUGE_VAL positivo o negativo será devuelto (según el signo del valor), y el valor de la macro ERANGE se guardara en errno. Si el valor correcto causara un «underflow«, devolverá cero y el valor de la macro ERANGE se guardará en errno.

Ejemplo:

Función strtol

long int strol(const char *numPtr, char **finalPtr, int base);

Convierte la porción inicial de la cadena apuntada por numPtr a una representación de long int. Primero descompone la cadena de entrada en tres partes: una secuencia inicial, posiblemente vacía, de caracteres de espacio blanco (tal como es especificado por la función isspace), una secuencia fuente asemejándose a un entero representado en alguna base determinado por el valor de base, y una cadena final de uno o más caracteres no reconocidos, incluyendo el carácter nulo final de la cadena entrada. Entonces, intenta convertir la secuencia fuente a un entero, y devuelve el resultado.

Si el valor de base es cero, la forma esperada de la secuencia fuente es aquélla de una constante entera, opcionalmente precedida por un signo más o menos, pero sin incluir un sufijo entero. Si el valor de base está entre 2 y 36, la forma esperada de la secuencia fuente es una secuencia de letras y dígitos representando un entero con una base especificado por base, opcionalmente precedida por un signo positivo o negativo, pero sin incluir un sufijo entero. Las letras desde aA) hasta zZ) son atribuidos los valores de 10 a 35; sólo letras cuyos valores atribuidos son menores que aquéllos permitidos de la base. Si el valor de base es 16, los caracteres 0x ó 0X puedes preceder la secuencia de letras y dígitos opcionalmente, a continuación del signo, si éste está presente.

La secuencia fuente está definida como la secuencia inicial más larga de la cadena de entrada, comenzando por el primer carácter que no sea un espacio blanco, que es la forma esperada. La secuencia fuente no contiene caracteres si la cadena de entrada está vacía o consiste totalmente de espacios en blanco, o si el primer carácter que no es un espacio blanco es distinto a un signo o letra o dígito permitido.

Si la secuencia fuente tiene la forma esperada y el valor de base es cero, la secuencia de caracteres comenzando por el primer dígito es interpretada como una constante entera. Si la secuencia fuente tiene la forma esperada y el valor de
base está entre 2 y 36, es usada como la base para la conversión, atribuyendo a cada letra su valor dado tal como se ha descrito anteriormente. Si la secuencia fuente comienza con un signo negativo, el valor resultante de la conversión es negativo. Se guarda un puntero a la cadena final en el objeto apuntado por finalPtr, con tal de que finalPtr no sea nulo.

Si la secuencia fuente está vacía o no tiene la forma esperada,no se realizará ninguna conversión; el valor numPtr se guarda en el objeto apuntado por finalPtr, con tal de que finalPtr no sea nulo.

A continuación, se muestra el formato usado por esta función:

Si la base es cero, los primeros caracteres de numPtr determinan la base:

Valor de retorno:

La función strtol devuelve el valor convertido, si existe. Si no se pudo realizar ninguna conversión, devolverá cero. Si el valor correcto no pertenece al intervalo de valores representables, LONG_MAX o LONG_MIN devolverá (según el signo del valor), el valor de la macro ERANGE que se encuentra en errno.

Ejemplo:

Función strtoul

unsigned long int strtoul(const char *numPtr, char **finalPtr, int base);

Convierte la porción inicial de la cadena apuntada por numPtr a una representación de unsigned long int. La función strtoul funciona idénticamente a la función strtol.

Valor de retorno:

La función strtoul devuelve el valor convertido (si el valor existiese). Si no se puede realizar ninguna conversión, entonces devolverá cero. Si el valor correcto no pertenece al intervalo de valores representables, devuelve UONG_MAX, y el valor de la macro ERANGE se guarda en errno.

Ejemplo:

Función system

int system(const char *cadena);

Pasa la cadena apuntada por cadena al entorno local para ser ejecutada por el «procesador de comandos» – también denominado «intérprete de comandos» – de una forma definida según la implementación. Podemos utilizar un puntero nulo
para la cadena y así comprobar si existe un procesador de comandos.

Valor de retorno:

Si el argumento es un puntero nulo, la función system devuelve un valor distinto de cero (sólo si el procesador de comandos está disponible). Si el argumento no es un puntero nulo, la función system devuelve un valor definido según la implementación.

Ejemplo:

Función wctomb

int wctomb(char *cad, wchar_t wchar);

Determina el número de bytes necesarios para representar un carácter multibyte correspondiendo al código cuyo valor es wchar (incluyendo cualquier cambio en el estado del traslado). Guarda la representación del carácter multibyte en el array apuntado por cad (si cad no es un puntero nulo). Al menos los caracteres son guardados en B_CUR_MAX. Si el valor de wchar es cero, la función wctomb se queda en el estado inicial del traslado.

Valor de retorno:

Si cad es un puntero nulo, la función wctomb devuelve un valor distinto o igual a cero, si los códigos del carácter multibyte, respectivamente, tienen o no códigos dependiendo del estado. Si cad no es un puntero nulo, la función wctomb devuelve -1 si el valor de wchar no corresponde a un carácter multibyte válido, o devuelve el número de bytes que están contenidos en el carácter multibyte correspondiente al valor de wchar. En ningún caso, el valor devuelto será mayor que n o el valor de la macro MB_CUR_MAX.

Ejemplo: