Files
printer-driver/docs/README.md
T
2026-10-02 21:03:47 +02:00

2.4 KiB

Apuntes

Ordenados por tema, en el orden en que se ven en el proyecto.

  1. Compilación y enlazado: etapas de gcc, cómo compila Go, empezar por cualquier etapa (.i, -save-temps), qué hay dentro de un .i, unidades de traducción, por qué basta la declaración para compilar, cabeceras e #include, encapsulación y tipos opacos, include guards, flags, qué ve quien recibe los binarios, nm y errores del enlazador.
  2. Punteros y cadenas: cadenas terminadas en '\0', const char *, los dos significados de *, dónde va el *, nombres de parámetros, paso por valor frente a puntero, un puntero no sabe cuántos elementos hay, const en parámetros, arrays y el formato de printf.
  3. La memoria de un proceso: memoria virtual, fallos de página, modo usuario y modo núcleo, llamadas al sistema, cómo se lee la memoria de otro proceso, y por qué el peligro real está en la tuya.
  4. Go con mentalidad de C: benchmark de dos estilos, reservas de memoria, padding, slices que comparten memoria, dinero en float y el precio de la versión rápida.
  5. Frameworks y librerías: Qt, por qué en C casi no hay frameworks, librerías C relevantes para el proyecto e interfaces con punteros a función.
  6. Make: reglas, grafo de dependencias por fechas, variables automáticas, reglas patrón, dependencias de cabeceras con -MMD -MP y detección de Windows/Linux.
  7. Memoria dinámica: pila y montón, escape analysis de Go, malloc/free/calloc, sizeof *p, realloc y estrategia de crecimiento, memcpy y desbordamiento al calcular tamaños, fugas, liberar en caminos de error sin defer (goto cleanup), propiedad de los punteros y Valgrind.
  8. Structs: definir frente a declarar, tipos incompletos y tipo opaco, struct público frente a opaco, typedef, uint8_t y size_t, qué tipo usar en cada caso, . frente a -> e inicializadores designados.
  9. Depurar: qué es un segfault, código de salida 139, NULL y la página 0, free(): invalid pointer (código 134), método para depurar con Valgrind, los comandos mínimos de gdb y la depuración visual en VS Code.

Chuleta de comandos: todos los comandos usados, agrupados por tarea.