C et C++
Introduction aux langages C et C++. Toutes les ressources sur ces langages.
Le langage C est un langage de bas niveau créé en 1972 pour implémenter le premier système Unix. Ce langage a doucement évolué et est maintenant utilisé par pratiquement tout les noyaux de système d'exploitation, ainsi que par l'ensemble des sous-systèmes (machines virtuelles, serveur graphique, bibliothèque système, etc) d'un ordinateur.
Le langage C++ a été créé en 1979 pour ajouter le paradigme orienté objet au langage C. C++ est utilisé par de très nombreuses applications utilisateurs (navigateurs web, lecteurs audio/video, logiciels bureautique, etc). Son avantage par rapport au C est d'ajouter la gestion des objets, ce qui facilite la conception des logiciels. Le langage C++ est nettement plus compliqué que C, ce qui le rend son apprentissage plus long.
C et C++ sont tout deux largement utilisés dans les logiciels libre. Une des raisons est que ces deux langages sont parmi les plus rapide à l'exécution, et beaucoup de développeurs de logiciels libre sont attaché à cet avantage de performance. Une seconde raison est que de nombreux ingénieurs apprennent ce langage au cours de leur étude. Finalement, il est existe aussi une culture du C et C++ au sein des logiciels libre.
Commencer avec C++
Les bon cours de C++ sont rares, aussi bien online que dans les livres. Vous pouvez commencer par le cours de C++ de Christian Casteyde qui est vraiment bien fait.
Sur ce site, nous vous proposons:
- Une introduction à la compilation: explique comment compiler un programme C++ à l'aide de GCC et montre les options importantes.
- Squelette d'un programme: explique les différentes parties d'une fichier source C et C++.
Programmation système
Connaitre les langages C ou C++ n'est pas suffisant pour réaliser de vrai programme car la bibliothèque standard est très limité. Pour de nombreuses tâche courante: parallélisme d'exécution, communication réseau, communication inter-processus, etc, il faut passer par les bibliothèques système qui sont spécifique à Unix.
Nous avons une série d'article pour introduire toutes ces bibliothèque. En voici les principaux:
- Les processus: explique comment créer, finir et gérer les processus
- Les threads: introduit les thread posix et leur utilisation. Les problèmes de synchronisation sont brièvement introduits (page très populaire depuis le multicore)
- Les fichiers: explique ouvrir, gérer et manipuler fichiers et dossiers
- Les sockets: explique comment utiliser communiquer entre processus sur le réseau ou sur la même machine (cette page est incroyablement populaire)
- Les signaux: explique comment prendre en charge les signaux, et comment en envoyer
Les articles cité ici ne sont que les plus populaire, pensez à aller voir l'ensemble des articles, il y a aussi des exercices résolus.
Wishlist
Quelques idées d'articles souhaités:
- Cours de C
- La sécurité avec C & C++
- Présentation du noyau Linux
- Introduction à GTK
Ressources
Une référence de la bibliothèque standard de C++
Pages de manuel de Linux Certif: contient les références de nombreuses bibliothèques

