Sei sulla pagina 1di 9

Programa de Formación de la Academia de Software Libre

Nivel: Desarrolladores en Software Libre

Módulo: Lenguaje de Aplicación

UNIDAD 6: Librería de Lenguaje C

Objetivo terminal de la unidad:

Emplear librerías predefinidas de Lenguaje C para la solución de problemas de


programación y reutilización de código.

Temas

● Librerías predefinidas
● Principales archivos de cabecera
● Principales funciones de entrada/salida
● Funciones para el manejo de archivos
● Manejo de cadenas

● Librerías Predefinidas

El estándar de C define sólo unas pocas palabras reservadas. Sólo con ellas no
puede hacerse un programa “normal” en la vida real. El programador necesita una serie
de funciones y herramientas estándar, que deben encontrase disponibles en cualquier
entorno de programación de C / C++. A este conjunto de funciones se le llama librería
estándar. Las funciones se declaran en archivos de cabecera o .h. Las cabeceras
contienen única y exclusivamente los prototipos de las funciones. El código o cuerpo de
las funciones se incluye en archivos objeto que son realmente la librería.

● Principales archivos de cabecera


Los principales archivos de cabecera de C suelen ser los siguientes:
● ctype.h: son funciones útiles para la clasificación y el mapeo de códigos.
● errno.h: son funciones que permiten comprobar el valor almacenado en
errno por algunas funciones de librerías.
● float.h: son funciones que establecen algunas propiedades de las
representaciones de tipos real.
● limits.h: son funciones que establecen algunas propiedades de las
representaciones de tipos enteros.
● math.h: son funciones que sirven para realizar operaciones matemáticas
comunes sobre valores de tipo double.
● stdarg.h: son declaraciones que permiten acceder a los argumentos
adicionales sin nombre en una función que acepta un número variable de
argumentos.
● stdio.h: son macros y funciones para realizar operaciones de entrada y
salida sobre archivos y flujos de datos.
● stdlib.h y a veces unistd.h: son declaraciones de una colección de
funciones útiles y la definición de tipos y macros para utilizarlas. Entre ellas

Pág. 9 Curso: Lenguaje C Unidad 6: Librería de Lenguaje C


Programa de Formación de la Academia de Software Libre

Nivel: Desarrolladores en Software Libre

Módulo: Lenguaje de Aplicación

suele estar la función malloc que permite hacer solicitudes de


memoria dinámica al sistema.
● string.h: es una declaración de una colección de funciones útiles para
manejar cadenas y otros arreglos de caracteres.
● time.h: es una declaración de funciones para el manejo de fechas.

A continuación se presentan en forma de tabla algunas de las funciones de librería más


utilizadas en el lenguaje C.

Función Tipo Propósito Lib


abs(i) Int Devuelve el valor absoluto de i stdlib.h
acos(d) double Devuelve el arco coseno de d math.h
asin(d) double Devuelve el arco seno de d math.h
atan(d) double Devuelve el arco targente de d math.h
atof(s) double Convierte la cadena s en un número de doble precisión stdlib.h
atoi(s) long Convierte la cadena s en un número entero stdlib.h
clock() long Devuelve la hora del reloj del ordenador. Para pasar a time.h
segundos, dividir por la constante CLOCKS_PER_SEC
Cos(d) double Devuelve el coseno de d math.h
Exit(u) void Cerrar todos los archivos y buffers, terminando el stdlib.h
programa.
exp(d) double Elevar e a la potencia d (e=2.77182...) math.h
fabs(d) double Devuelve el valor absoluto de d math.h
fclose(f) int Cierra el archivo f. stdio.h
feof(f) int Determina si se ha encontrado un fin de archivo. stdio.h
fgetc(f) int Leer un caracter de archivo f. stdio.h
fgets(s,i,f) char* Leer una cadena s, con i caracteres, del archivo f stdio.h
floor(d) double
floor(d) double Devuelve un valor redondeado por defecto al entero más math.h
cercano a d.
fmod(d1,d2) double Devuelve el resto de d1/d2 (con el mismo signo de d1) math.h
fopen(s1,s2) FILE * Abre un archivo llamado s1, para una operación del tipo stdio.h
s2. Devuelve el puntero al archivo abierto.
fprintf(f,...) int Escribe datos en el archivo f. stdio.h
fputc(c,f) int Escribe un caracter en el archivo f. stdio.h
free(p) void Libera un bloque de memoria al que apunta p. malloc.h

Pág. 9 Curso: Lenguaje C Unidad 6: Librería de Lenguaje C


Programa de Formación de la Academia de Software Libre

Nivel: Desarrolladores en Software Libre

Módulo: Lenguaje de Aplicación

fscanf(f,...) int Lee datos del archivo f. stdio.h

getc(f) int Lee un caracter del archivo stdio.h


getchar() int Lee un caracter desde el dispositivo de entrada estándar. stdio.h
log(d) double Devuelve el logaritmo natural de d. math.h
malloc(n) void * Reserva n bytes de memoria. Devuelve un puntero al malloc.h
principio del espacio reservado. o stdlib.h
pow(d1,d2) double Devuelve d1 elevado a la potencia d2. math.h
printf(...) int Escribe datos en el dispositivo de salida estándar. stdio.h
rand(void) int Devuelve un valor aleatorio positivo. stdlib.h
sin(d) double Devuelve el seno de d. math.h
sqrt(d) double Devuelve la raíz cuadrada de d. math.h
strcmp(s1,s2) int Compara dos cadenas lexicográficamente. string.h
strcomp(s1,s2) int Compara dos cadenas lexicográficamente, sin tomar en string.h
cuenta mayúsculas o minúsculas.
strcpy(s1,s2) char * Copia la cadena s2 en la cadena s1 string.h
strlen(s1) int Devuelve el número de caracteres en la cadena s. string.h
system(s) int Pasa la orden s al sistema operativo. stdlib.h
tan(d) double Devuelve la tangente de d. math.h
time(p) long int Devuelve el número de segundos transcurridos desde de time.h
un tiempo base designado (1 de enero de 1970).
toupper(c) int Convierte una letra a mayúscula. stdlib.h o
ctype.h

Nota: la columna tipo se refiere al tipo de la cantidad devuelta por la función. Un


asterisco denota puntero, y los argumentos que aparecen en la tabla tienen el significado
siguiente:

(c) denota un argumento de tipo caracter.


(d) denota un argumento de doble precisión.
(f) denota un argumento archivo.
(i) denota un argumento entero.
(l) denota un argumento entero largo.
(p) denota un argumento puntero.
(s) denota un argumento cadena.
(u) denota un argumento entero sin signo.

Pág. 9 Curso: Lenguaje C Unidad 6: Librería de Lenguaje C


Programa de Formación de la Academia de Software Libre

Nivel: Desarrolladores en Software Libre

Módulo: Lenguaje de Aplicación

● Principales funciones para de entradas/salidas


Para el caso del manejo de las entradas y salidas de un programa escrito en C, se
cuenta con las siguientes funciones:

Función printf

Sintaxis:

int printf (const char *formato, ...);

Sirve para scribir el texto formateado por el flujo stdout, según las especificaciones
de “formato” y la lista de expresiones. Devuelve el número de caracteres escritos o un
valor negativo en caso de error.

Función scanf

Sintaxis:

int scanf (const char *formato, ...);

Sirve para leer el texto por el flujo stdin y lo almacena según las especificaciones
de “formato”. Devuelve el número de valores asignados o EOF si se produce error o se
alcanza fin de archivo sin producirse lectura.

Función puts

Sintaxis:

int puts (const char *s);

Sirve para escribir los caracteres de la cadena ``s'' por el flujo stdout. Escribe un
caracter ``NL'' en lugar del nulo de terminación. Devuelve un valor no negativo. En caso
de error devuelve EOF.
Funciones para el manejo de archivos

Para el manejo de archivos de un programa escrito en C, se cuenta con las
siguientes funciones:

Función fopen

Sintaxis:

Pág. 9 Curso: Lenguaje C Unidad 6: Librería de Lenguaje C


Programa de Formación de la Academia de Software Libre

Nivel: Desarrolladores en Software Libre

Módulo: Lenguaje de Aplicación

FILE *fopen(const char *nombre_archivo, const char *modo);

Sirve para abrir el archivo de nombre ``nombre_archivo'', lo asocia con un flujo


de datos y devuelve un puntero al mismo. Si falla la llamada, devuelve un puntero nulo.
Algunos de los caracteres iniciales de ``modo'' son:
``r'', para abrir un archivo de texto existente para su lectura
``w'', para crear un archivo de texto o abrir y truncar uno existente, para su
escritura
``a'', para crear un archivo de texto o abrir uno existente, para su escritura. El
indicador de posición se coloca al final del archivo antes de cada escritura
``r+'', para abrir un archivo de texto existente para su lectura y escritura

*****verificar por miyrle el como está escrito esto:


``r'',``w'',``a'',``r+''******

Función fclose

Sintaxis:

int fclose(FILE *flujo);

Sirve para cerrar el archivo asociado con “flujo”. Devuelve 0 en caso de éxito y
EOF (end of file) en caso contrario.

Función fwrite

Sintaxis:

size_t fwrite(const void *buffer, size_t n, size_t c, FILE *flujo);

La rutina fwrite permite escribir c elementos de longitud n bytes almacenados en


el buffer apuntado por “flujo”.

Función fread

Sintaxis:

size_t fread(const void *buffer, size_t n, size_t c, FILE *flujo);

La rutina fread permite leer c elementos de longitud n bytes del archivo apuntado
por “flujo” y los almacena en el buffer especificado.
Pág. 9 Curso: Lenguaje C Unidad 6: Librería de Lenguaje C
Programa de Formación de la Academia de Software Libre

Nivel: Desarrolladores en Software Libre

Módulo: Lenguaje de Aplicación

Función fgetc

Sintaxis:

int fgetc(FILE *flujo);


Sirve para leer el siguiente caracter por “flujo”, avanza el indicador de posición y
devuelve int. Devuelve EOF si pone a 1 el indicador de fin de archivo o el de error.

Función fgets

Sintaxis:

char *fgets(char *s, int n, FILE *flujo);

Sirve para leer los caracteres por “flujo” y los almacena en elementos sucesivos
del “arreglo” que comienza en “s”, continuando hasta que almacene “n-1” caracteres,
almacene un caracter del nueva línea o ponga a 1 los indicadores de error o de fin de
archivo. Si almacena un caracter, concluye almacenando un caracter nulo en el siguiente
elemento del “arreglo”. Devuelve “s” si almacena algún caracter y no ha puesto a 1 el
indicador de error; en caso contrario devuelve un puntero nulo.

Función fputs

Sintaxis:

int fputs(const char *s, FILE *flujo);

Sirve para escribir los caracteres de la cadena s por “flujo”. No escribe el caracter nulo de
terminación. En caso de éxito, devuelve un valor no negativo; en caso de error devuelve
EOF.

Función fscanf

Sintaxis:

int fscanf(FILE *flujo, const char *formato, ...);

Sirve para leer el texto y convierte a la representación interna según el formato


especificado en formato. Devuelve el número de entradas emparejadas y asignadas, o

Pág. 9 Curso: Lenguaje C Unidad 6: Librería de Lenguaje C


Programa de Formación de la Academia de Software Libre

Nivel: Desarrolladores en Software Libre

Módulo: Lenguaje de Aplicación

EOF si no se almacenan valores antes de que se active el indicador de error


o de fin de archivo.

Función fprintf

Sintaxis:

int fprintf(FILE *flujo, const char *formato, ...);

Con esta función se genera texto formateado, bajo el control de formato formato y
escribe los caracteres generados por flujo. Devuelve el número de caracteres generados
o un valor negativo en caso de error. A modo de resumen estas son las especificaciones
de formato más comunes:

Formato Descripción
%d Entero con signo
%u Entero sin signo
%c Caracter
%s Puntero a cadena de
caracteres

Función fseek

Sintaxis:

int fseek( FILE *flujo, long desplazamiento, int origen);

Esta función mueve el puntero de posición del archivo correspondiente al flujo de


datos apuntado por ``flujo''. La nueva posición, medida en bytes, se obtiene añadiendo
el número indicado por desplazamiento a la posición especificada por origen. La variable
origen puede tomar tres valores:
●SEEK_SET: el puntero de posición apuntará al inicio del archivo más el
desplazamiento
● SEEK_CUR: el puntero de posición apuntará a la posición actual del puntero
de posición del archivo más el desplazamiento.
● SEEK_END: el puntero de posición apuntará al fin del archivo más el
desplazamiento (deberá ser menor o igual que cero).
● Manejo de cadenas
Para el manejo de cadenas en un programa escrito en C, se cuenta con las
siguientes funciones:
Pág. 9 Curso: Lenguaje C Unidad 6: Librería de Lenguaje C
Programa de Formación de la Academia de Software Libre

Nivel: Desarrolladores en Software Libre

Módulo: Lenguaje de Aplicación

Función strcmp

Sintaxis:

int strcmp(const char *s1, const char *s2);

Sirve para comparar los elementos de dos cadenas s1 y s2 hasta que encuentra
elementos diferentes. Si todos son iguales, devuelve 0. Si el elemento diferente de s1 es
mayor que el de s2, devuelve un valor mayor que cero; en caso contrario, devuelve un
valor menor que cero.

Función strcpy

Sintaxis:

char *strcpy(char *s1, const char *s2);

Sirve para copiar la cadena s2, incluyendo el nulo, en el arreglo de elementos char
que comienza en s1. Devuelve s1.

Función strdup

Sintaxis:

char *strdup(const char *s);

Con esta función se devuelve un puntero a una nueva cadena de caracteres que es un
duplicado de la cadena s. La memoria para esta cadena de caracteres se obtiene con la
función malloc y se libera con la función free.

Función strlen

Sintaxis:

size_t strlen (const char *s);

Esta función devuelve el número de caracteres de la cadena s, sin incluir el nulo de


terminación.
Pág. 9 Curso: Lenguaje C Unidad 6: Librería de Lenguaje C
Programa de Formación de la Academia de Software Libre

Nivel: Desarrolladores en Software Libre

Módulo: Lenguaje de Aplicación

Función strncmp

Sintaxis:

int strncmp(const char *s1, const char *s2, size\_t n);

Sirve para comparar los elementos de las cadenas s1 y s2 hasta que encuentra alguno
diferente, o hasta que se han comparado n elementos. Si todos los elementos son
iguales, devuelve 0. Si el elemento diferente de s1 es mayor que el de s2, devuelve un
número positivo. En caso contrario, devuelve un número negativo.

Función strncpy

Sintaxis:

char *strncpy(char *s1, const char *s2, size\_t n);

Sirve para copiar la cadena s2, sin incluir el nulo, en la cadena s1. Copia como máximo
n caracteres de s2. Entonces almacena, cero o más caracteres nulos si son necesarios
para completar un total de n caracteres. Devuelve s1.

Función strndup

Sintaxis:

char *strndup(const char *s, size\_t n);

Sirve para devolver un puntero a una nueva cadena de caracteres que es un duplicado de
la cadena s, solo copia los primeros n caracteres, incluyendo el nulo. La memoria para
esta cadena de caracteres se obtiene con la función malloc y se libera con la función free.

Pág. 9 Curso: Lenguaje C Unidad 6: Librería de Lenguaje C

Potrebbero piacerti anche