SDK Multiplataforma en C logo

SDK Multiplataforma en C

Funciones estándar

❮ Anterior
Siguiente ❯

Funciones

uint32_tblib_strlen (...)
const char_t*blib_strstr (...)
voidblib_strcpy (...)
voidblib_strncpy (...)
voidblib_strcat (...)
intblib_strcmp (...)
intblib_strncmp (...)
uint32_tblib_strftime (...)
int64_tblib_strtol (...)
uint64_tblib_strtoul (...)
real32_tblib_strtof (...)
real64_tblib_strtod (...)
voidblib_qsort (...)
voidblib_qsort_ex (...)
bool_tblib_bsearch (...)
bool_tblib_bsearch_ex (...)
const char_t*blib_getenv (...)
int32_tblib_setenv (...)
voidblib_atexit (...)
voidblib_abort (void)
voidblib_exit (...)
voidblib_debug_break (void)

BLib incluye funciones útiles de la librería estándar de C que no encajan en otros módulos como BMath o BMem. Al igual que en <stdlib.h> encontramos funciones de conversión de texto, algoritmos o interacción con el entorno.

  • Utiliza blib_strcmp para comparar dos cadenas de texto.
  • Utiliza blib_qsort para ordenar un vector de elementos.
  • Utiliza blib_bsearch para realizar una búsqueda dicotómica sobre un vector ordenado.
  • Utiliza blib_abort para acabar la ejecución del programa.

1. Conversión de fechas

  • Utiliza blib_strftime para convertir una fecha a texto.
  • Tabla 1: Modificadores del formato de fecha.
    Modificador Reemplazado por Ejemplo
    %a Día de la semana abreviado Sun
    %A Día de la semana completo Sunday
    %b Nombre del mes abreviado Mar
    %B Nombre del mes completo March
    %c Representación del día/hora Sun Aug 19 02:56:02 2012
    %d Día del mes (01-31) 19
    %H Hora en formato 24h (00-23) 14
    %I Hora en formato 12h (01-12) 05
    %j Día del año (001-366) 231
    %m Mes como número decimal (01-12) 08
    %M Minuto (00-59) 55
    %p AM o PM PM
    %S Segundo (00-59) 02
    %U Número de semana con el primer Domingo como el primer día de la semana 1 (00-53) 33
    %w Día de la semana como número con Domingo 0 (0-6) 4
    %W Número de semana con el primer Lunes como el primer día de la semana 1 (00-53) 34
    %x Representation de fecha 08/19/12
    %X Representation de hora 02:50:06
    %y Año con dos dígitos (00-99) 01
    %Y Año 2012
    %Z Zona horaria o abreviación CDT
    %% Signo % %
❮ Anterior
Siguiente ❯

blib_strlen ()

Retorna la longitud en bytes de una cadena de texto.

uint32_t
blib_strlen(const char_t *str);
str

Cadena acabada en carácter nulo '\0'.

Retorna

Longitud de la cadena sin incluir el carácter nulo.

Observaciones

Ver Unicode, el número de bytes no es equivalente al número de caracteres.


blib_strstr ()

Busca una subcadena dentro de una cadena más larga.

const char_t*
blib_strstr(const char_t *str,
            const char_t *substr);
str

Cadena acabada en carácter nulo '\0'.

substr

Subcadena a buscar acabada en carácter nulo '\0'.

Retorna

Puntero al inicio de la primera subcadena encontrada o NULL si no existe ninguna.


blib_strcpy ()

Copia el contenido de una cadena en otra.

void
blib_strcpy(char_t *dest,
            const uint32_t size,
            const char_t *src);
dest

Buffer destino.

size

Tamaño del buffer destino en bytes.

src

Cadena a copiar acabada en carácter nulo '\0'.

Observaciones

Solo los primeros size-1 bytes serán copiados, en el caso de que src sea más larga que la capacidad de dest.


blib_strncpy ()

Copia los primeros n bytes de na cadena en otra.

void
blib_strncpy(const char_t *dest,
             const uint32_t size,
             const char_t *src,
             const uint32_t n);
dest

Buffer destino.

size

Tamaño del buffer destino en bytes.

src

Cadena a copiar acabada en carácter nulo '\0'.

n

Número de bytes a copiar.

Observaciones

Solo los primeros size-1 bytes serán copiados, en el caso de que n sea mayor que size.


blib_strcat ()

Concatena dos cadenas.

void
blib_strcat(char_t *dest,
            const uint32_t size,
            const char_t *src);
dest

Buffer origen y destino.

size

Tamaño del buffer destino en bytes.

src

Cadena a añadir a dest, acabada en carácter nulo '\0'.

Observaciones

No se sobrepasarán los size-1 bytes en dest, por lo que la concatenación será truncada si es necesario.


blib_strcmp ()

Compara dos cadenas.

int
blib_strcmp(const char_t *str1,
            const char_t *str2);
str1

Primera cadena a comparar, acabada en carácter nulo '\0'.

str2

Segunda cadena a comparar, acabada en carácter nulo '\0'.

Retorna

Resultado de la comparación.


blib_strncmp ()

Compara los primeros n bytes de dos cadenas.

int
blib_strncmp(const char_t *str1,
             const char_t *str2,
             const uint32_t n);
str1

Primera cadena a comparar, acabada en carácter nulo '\0'.

str2

Segunda cadena a comparar, acabada en carácter nulo '\0'.

n

Número máximo de bytes a comparar.

Retorna

Resultado de la comparación.


blib_strftime ()

Transforma una fecha en una cadena de texto, utilizando el formato de strftime.

uint32_t
blib_strftime(char_t *dest,
              const uint32_t size,
              const char_t *format,
              const int16_t year,
              const uint8_t month,
              const uint8_t mday,
              const uint8_t wday,
              const uint8_t hour,
              const uint8_t minute,
              const uint8_t second);
dest

Puntero al búfer donde será escrito el resultado. Terminará en carácter nulo '\0'.

size

Tamaño de dest en bytes.

format

Formato de la cadena con la fecha.

year

Año.

month

Número de mes (1,12).

mday

Día del mes (1,31).

wday

Día de la semana (0,6). 0=Domingo.

hour

Hora (0,23).

minute

Minuto (0,59).

second

Segundo (0,59).

Retorna

El número bytes escritos en dest, sin incluir el caracter '\0'. Si la cadena no cabe en dest retorna 0.

Observaciones

Ver Conversión de fechas.


blib_strtol ()

Transforma una cadena de texto en un número entero.

int64_t
blib_strtol(const char_t *str,
            char_t **endptr,
            uint32_t base,
            bool_t *err);
str

Cadena que comienza con un número entero.

endptr

Puntero cuyo valor será el primer carácter tras el número. Puede ser NULL.

base

Base de numeración: 2, 8, 10, 16.

err

Se asigna valor TRUE si hay algún error en el análisis de la cadena. Pueder ser NULL.

Retorna

Número resultado del análisis de la cadena.


blib_strtoul ()

Transforma una cadena de texto en un número entero sin signo.

uint64_t
blib_strtoul(const char_t *str,
             char_t **endptr,
             uint32_t base,
             bool_t *err);
str

Cadena que comienza con un número entero.

endptr

Puntero cuyo valor será el primer carácter tras el número. Puede ser NULL.

base

Base de numeración: 2, 8, 10, 16.

err

Se asigna valor TRUE si hay algún error en el análisis de la cadena. Pueder ser NULL.

Retorna

Número resultado del análisis de la cadena.


blib_strtof ()

Transforma una cadena de texto en un número real de 32 bits.

real32_t
blib_strtof(const char_t *str,
            char_t **endptr,
            bool_t *err);
str

Cadena que comienza con un número real.

endptr

Puntero cuyo valor será el primer carácter tras el número. Puede ser NULL.

err

Se asigna valor TRUE si hay algún error en el análisis de la cadena. Pueder ser NULL.

Retorna

Número resultado del análisis de la cadena.


blib_strtod ()

Transforma una cadena de texto en un número real de 64 bits.

real64_t
blib_strtod(const char_t *str,
            char_t **endptr,
            bool_t *err);
str

Cadena que comienza con un número entero.

endptr

Puntero cuyo valor será el primer carácter tras el número. Puede ser NULL.

err

Se asigna valor TRUE si hay algún error en el análisis de la cadena. Pueder ser NULL.

Retorna

Número resultado del análisis de la cadena.


blib_qsort ()

Ordena un vector de elementos utilizando el algoritmo QuickSort.

void
blib_qsort(byte_t *array,
           const uint32_t nelems,
           const uint32_t size,
           FPtr_compare func_compare);
array

Vector de elementos.

nelems

Número de elementos.

size

Tamaño de cada elemento.

func_compare

Función de comparación.


blib_qsort_ex ()

Ordena un vector de elementos utilizando el algoritmo QuickSort.

void
blib_qsort_ex(byte_t *array,
              const uint32_t nelems,
              const uint32_t size,
              FPtr_compare_ex func_compare,
              const byte_t *data);
array

Vector de elementos.

nelems

Número de elementos.

size

Tamaño de cada elemento.

func_compare

Función de comparación que acepta datos extra.

data

Datos extra que serán pasados en cada comparación.


blib_bsearch ()

Busca un elemento en un vector ordenado.

bool_t
blib_bsearch(const byte_t *array,
             const byte_t *key,
             const uint32_t nelems,
             const uint32_t size,
             FPtr_compare func_compare,
             uint32_t *pos);
array

Vector de elementos.

key

Clave de búsqueda.

nelems

Número de elementos.

size

Tamaño de cada elemento.

func_compare

Función de comparación.

pos

Posición del elemento encontrado. Puede ser NULL.

Retorna

TRUE si se ha encontrado el elemento.


blib_bsearch_ex ()

Busca un elemento en un vector ordenado.

bool_t
blib_bsearch_ex(const byte_t *array,
                const byte_t *key,
                const uint32_t nelems,
                const uint32_t size,
                FPtr_compare_ex func_compare,
                const byte_t *data,
                uint32_t *pos);
array

Vector de elementos.

key

Clave de búsqueda.

nelems

Número de elementos.

size

Tamaño de cada elemento.

func_compare

Función de comparación que acepta datos extra.

data

Datos extra que serán pasados en cada comparación.

pos

Posición del elemento encontrado. Puede ser NULL.

Retorna

TRUE si se ha encontrado el elemento.


blib_getenv ()

Obtiene el valor de una variable de entorno.

const char_t*
blib_getenv(const char_t *name);
name

El nombre de la variable.

Retorna

El valor de la variable. NULL si dicha variable no existe.


blib_setenv ()

Establece el valor de una variable de entorno.

int32_t
blib_setenv(const char_t *name,
            const char_t *value);
name

El nombre de la variable.

value

El valor de la variable.

Retorna

0 si se ha establecido correctamente. En caso contrario, un código de error.

Observaciones

Si la variable ya existe, su valor se sobrescribirá.


blib_atexit ()

Añade una función que será llamada cuando el programa termine.

void
blib_atexit(void()(void) *func);
func

Función.


blib_abort ()

Termina de forma abrupta la ejecución del programa.

void
blib_abort(void);

Observaciones

No se liberan recursos ni se realiza un cierre controlado. El único caso donde se justifica su uso es salir del programa tras detectar un error irrecuperable (p.e NULL pointer).


blib_exit ()

Termina un proceso.

void
blib_exit(int code);
code

Código de retorno.


blib_debug_break ()

Detiene la ejecución del programa en el punto donde se encuentra la función y devuelve el control de depurador para que podamos inspeccionar la pila, variables, etc.

void
blib_debug_break(void);
❮ Anterior
Siguiente ❯