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
- Como editar con el vi, compilar con gcc y ejecutar un "Hola
mundo" en C sobre linux.
- Obtención de números
aleatorios con rand() y drand48().
- Punteros.
Algunos de los errores típicos que se comenten al comenzar
a manejar punteros.
- Algunas funciones útiles.
Funciones poco conocidas, pero útiles para programación
en C sobre unix.
- Tratamiendo de ficheros.
- 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++
Estadísticas y comentarios
Numero de visitas desde el 4 Feb 2007:
- Esta pagina este mes: 79566
- Total de esta pagina: 21635531
- Total del sitio: 43539552