Bonjour,

Je mets à disposition une formation complète en français sur le langage C, orientée Linux et DevOps :

Maîtriser C sur Ubuntu : De la Syntaxe au Système

https://github.com/NDXDeveloper/formation-c-ubuntu

Licence : CC BY 4.0 (libre d'utilisation, modification et redistribution)

Contenu

La formation comprend 35 chapitres (plus de 470 fichiers Markdown) organisés en 9 modules progressifs, avec environ 860 exemples de code complets et testés. Elle couvre :

Fondamentaux (débutant à intermédiaire) :
  • Écosystème C sous Linux, configuration de l'environnement (GCC, CMake, DevContainers)
  • Chaîne de compilation, types, opérateurs, fonctions
  • Pointeurs, tableaux, chaînes, allocation dynamique
  • Structures, unions, enums, listes chaînées, arbres
  • Organisation du code et compilation modulaire


Outillage et qualité (avancé) :
  • Build systems : CMake (priorité), GNU Make
  • Bibliothèques statiques et dynamiques, dlopen
  • Débogage : GDB, Valgrind (Memcheck, Helgrind, Cachegrind), sanitizers (ASan, UBSan, TSan, LSan)
  • Analyse statique : cppcheck, clang-tidy
  • Tests unitaires : Unity, Check, cmocka, CUnit, Criterion
  • Intégration continue : GitHub Actions (templates complets), gcov/lcov


Programmation système (expert) :
  • I/O bas niveau, fichiers, epoll, io_uring
  • Processus, signaux, fork/exec
  • Threads POSIX, synchronisation, atomics C11
  • Mémoire partagée, IPC (pipes, files de messages, sémaphores)
  • Sockets TCP/UDP, serveurs réseau
  • Introduction à eBPF (27 sections : tracepoints, kprobes, uprobes, XDP, LSM)


Techniques avancées :
  • Pointeurs de fonctions, callbacks, dispatch tables
  • Préprocesseur avancé, macros X-macros
  • Gestion mémoire avancée (pools, arenas, cleanup automatique)
  • Gestion d'erreurs robuste (errno, setjmp/longjmp, assertions)
  • Sécurité : code défensif, seccomp, hardening (PIE, RELRO, stack canary)
  • Optimisation : profiling, cache awareness, SIMD (SSE/AVX), LTO
  • Interopérabilité : FFI avec Python (ctypes), Go (cgo), Rust, C++


DevOps et déploiement :
  • Cross-compilation (ARM, RISC-V)
  • Packaging : .deb, .rpm, Docker multi-stage
  • Documentation : Doxygen
  • Études de cas : outil CLI, parser de logs, agent de monitoring, serveur web


Standards couverts : C11, C17, C23 (avec GCC 13)
Compilation de référence : gcc -Wall -Wextra -Werror -pedantic -std=c17



Comment l'utiliser

La formation se lit directement sur GitHub (Markdown rendu). Chaque chapitre contient un dossier exemples/ avec les programmes complets et un fichier COMPILER.md indiquant les flags de compilation pour chaque exemple.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
git clone https://github.com/NDXDeveloper/formation-c-ubuntu.git
cd formation-c-ubuntu
Les retours, corrections et suggestions sont les bienvenus.