Contenido del curso
De Wiki del curso de C
MÓDULO 1
- Introducción al lenguaje C:
- Un poco de historia: Desde 1972 hasta hoy día.
- Proyectos de referencia: el núcleo de Linux, el navegador web Firefox, el servidor web Apache, la interfaz web cgit, el toolkit gráfico GTK, en NDK de Android y el juego Doom.
- Por qué y para qué el lenguaje C.
- Características de C.
- Bibliografía recomendada.
- Ejemplo 1: ¡Hola mundo!
- El compilador GNU cc.
- Los #includes.
- La biblioteca estándar de C (libc)
- Introducción a las funciones en C.
- Definición y uso de funciones.
- Compilando y configurando un proyecto a través de scripts. (autoconf/automake).
- Introducción al gestor de versiones GIT y el editor de texto vim.
- Ejemplo 2: clase "gestor de tareas"
- Creación de objeto con malloc.
- Liberación de objetos con free.
- Impresión por pantalla.
- Acceso a campos de las estructuras.
- Ejemplo 3: errores clásicos y depurando con Valgrind
- Segfaults.
- Acceso a punteros inválidos.
- Fugas de memoria.
- Corrupciones de memoria.
- Valgrind: En qué puede ayudarnos.
- Ejemplo 4: arrays
- Declaración, acceso y usos.
- Ejemplo 5: listas
- Estructura list_head.
- Añadir elementos a la lista con list_add.
- Eliminar elementos de la lista con list_del.
- Referencias a elementos de una lista (&).
- Ejemplo 6: paso de argumentos al programa y tratamiento
- Los parámetros argc y argv y la función getopt_long.
- Ejemplo 7: E/S por ficheros
- Abrir y cerrar ficheros.
- Lectura y escritura de caracteres en fichero.
- Lectura y escritura de cadenas en un fichero.
- Las funciones fprintf(), fwrite() y fread().
MÓDULO 2: USANDO BIBLIOTECAS LIBRES
- GTK: Biblioteca para crear la interfaz gráfica de una aplicación.
- Introducción: Historia y software necesario.
- Ejemplo 1: Creación de widgets, ventanas, botones, etiquetas y contenedores.
- Ejemplo 2: Creación de widget con uso de menús. Uso de menus. Uso de Toolbars.
- Libjansson (JSON): Biblioteca para exporta e importar datos en formato JSON.
- Introducción: Historia, tipos de objetos y software necesario.
- Estructura estándar de JSON.
- Ejemplo 1: Procesado, recorrido e impresión de un arbol sencillo.
- Uso de funciones para procesar cadenas.
- Uso de funciones para recorrer el árbol.
- Impresión del contenido del árbol.
- Ejemplo 2: Procesado, recorrido e impresión de arboles con listas.
- Ejemplo 3: Lectura y escritura de ficheros en formato JSON.
- Ejemplo 4: Herramientas para validar la estructura de JSON.
- Libev: Biblioteca para manejar eventos
- Introducción.
- Manejo de eventos y sockets
- Ejemplo: Servidor que acepte y reciba conexiones a partir de eventos.
- Libsqlite: Biblioteca para uso de bases de datos sqlite.
- Introducción.
- Ejemplo 1: Conexión con una base de datos y creación de una tabla.
- Ejemplo 2: Añadir, borrar y actualizar datos en una base datos.