Ressources

Documentation/Spécification

Quand vous cherchez des informations sur une fonction ou autres éléments du langage :

  • cppreference 🇬🇧 par exemple pour la fonction printf

  • The Open Group 🇬🇧, le consortium qui développe les standards POSIX (entre autre). Vous pourrez trouver sur le site la liste des headers (en bas de page) qui peut éventuellement vous aider à retrouver des fonctions.

  • Le manuel de référence de GNU

  • dans le terminal : man num_section nom_fonction (voir man man pour la liste des sections). Pour les éléments de C, voir dans la section 3, man 3 printf. Pour les fonctions système, voir dans la section 2, man 2 fork.

  • dans le terminal : apropos printf vous donnera la liste des sections du man où printf apparaît.

  • man en ligne avec des liens cliquables et un peu de coloration syntaxique.

Cours/Livres sur le C

Si vous voulez améliorer vos connaissances en C, un livre incontournable est « The C Programming Language 2nd edition » 🇬🇧 de Brian Kernighan et Dennis Ritchie. Il présente le langage de la norme ANSI C, qui a évolué depuis (commentaires avec //, déclarations plus flexibles, …) et dont certains exemples demandent quelques modifications, mais reste un très bon début pour aborder le langage. Un second livre, plus difficile à aborder en 1er, est « Modern C » 🇬🇧 de Jens Gustedt, le livre complet est en open access avec le code source.

Si vous souhaitez suivre un cours avec des vidéos, le cours CS50 d’Harvard 🇬🇧 présente une introduction à l’informatique sur 10 semaines, dans le cadre de ce cours, vous pouvez suivre jusqu’à la semaine 4 et regarder la partie structure de la semaine 5.

Pour mieux comprendre les tableaux et pointeurs, il existe un tutoriel 🇬🇧 de Ted Jensen et maintenu par Jay Flaherty.

Vous pourrez aussi trouver des cours en français sur zeste de savoir 🇫🇷 ou openclassroom 🇫🇷.

La chaîne Low Level peut vous aider à comprendre le C et l’assembleur, avec une partie sur des aspects sécurité.

Cours/livres sur les aspects système

Pour les aspects système, nous ne verrons pas tout dans ce cours donc si vous voulez aller plus loin, vous pouvez lire « Développement système sous Linux, 5e édition » 🇫🇷 de Christophe Blaess (accessible en ligne avec la BU).

Si vous voulez mieux comprendre le fonctionnement de l’ordinateur, plus proche de l’électronique, vous pouvez regarder la vidéo « Exploring How Computers Work » 🇬🇧 de Sebastian Lague.

Pour aller un peu plus loin, la playlist « Computer Science » de CrashCourse part de la base historique de l’informatique et des portes logiques et va jusqu’à des sujets comme la robotique, la cryptographie, l’apprentissage, …