Ejemplos sencillos de C/C++ para Linux avanzado

Una serie de tutoriales en los que se pretende dar los ejemplos más sencillos posible para temas avanzados de programación en C o C++ sobre unix / linux. Se tratan sockets, semáforos, hilos, memoria compartida, rpc, etc. Para cada uno de ellos se pone uno o varios ejemplos con lo mínimo necesario para ponerlo en marcha. Por ejemplo, establecer un socket y transmitir por una lado una cadena "hola" y recibirla en el otro lado.

Si buscas una referencia de estos temas, aquí no la encontraras. Si sabes algo de programación en C sobre Linux y quieres aprender algo más avanzado, este puede ser un buen sitio para empezar.

Comenzamos a programar con C en Unix / Linux

  • Algunas cosas básicas sobre programación de C en linux
  • Algunas herramientas de programación que conviene conocer, al menos, que existen.
    • debugger. Cómo encontrar errores en nuestro código. Una sesión básica con el gdb de linux.
    • make. Mi proyecto es muy grande, tengo fuentes por varios directorios y tarda mucho en compilar. make nos ayuda a compilar eficientemente y con facilidad.
    • librerías. Qué son las librerías y cómo puedo hacer una. Ficheros .so y .a
    • profiler. Mi programa va muy lento. ¿Cómo sé dónde está perdiendo el tiempo?
    • ctags. Cómo navegar con el vi por los tipos de nuestro código C
    • Códigos ANSI. En una ventana de texto UNIX o MS-DOS se puede controlar desde C/C++ la posición para escribir con un printf() o los colores con los que se escribe el texto.

Algunos temas avanzadillos

  • Comunicaciones en red entre procesos. Dos programas que corren en el mismo o en distintos ordenadores abren una comunicación entre ellos y se envían datos.
    • Sockets
    • Con RPC (Remote Procedure Call) Un programa en ejecución puede llamar a funciones de otro programa también en ejecución en otro ordenador
  • IPCs (Recursos compartidos). Varios programas en el mismo ordenador pueden compartir información por medio de recuros compartidos
    • Memoria compartida. Dos programas en la misma máquina pueden compartir una zona común de memoria para intercambiar datos.
    • Semáforos. Cómo hacer que un programa espere a otro o que no puedan acceder simultáneamente a un recurso común, ambos en el mismo ordenador.
    • Colas de mensajes. Dos programas en el mismo ordenador pueden enviarse mensajes con información.
  • Señales y alarmas. Dos programas en el mismo ordenador se pueden enviar señales. Cómo hacer que un programa ejecute algo cada cierto tiempo sin necesidad de "dormirlo".
  • Procesos y Threads. Podemos hacer que nuestro programa ejecute varias cosas "simultáneamente".
  • Gráficos con X11
    • Un pequeño programa de ejemplo y las explicaciones básicas para poder empezar a hacer gráficos "maravillosos" en linux/unix con X11.
    • Las cuentas para transformar los puntos de nuestro gráfico en pixels de pantalla. Un ejemplo dibujando la función sin(x) sobre una ventana de X11.

Programación C++

0 comentarios: