abort | abs | acos | atexit | atoi |
bsearch | calloc | div | exit | getenv |
labs | ldiv | malloc | mblen | mbstowcs |
mbtowc | qsort | rand | realloc | srand |
strtod | strtol | strtoul | system | wctomb |
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:
Función bsearch
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 a (ó A) hasta z (ó Z) 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:
Debe estar conectado para enviar un comentario.