:: Enseignements :: ESIPE :: INFO2 :: 2014-2015 :: Programmation système en C ::
| Remarques préliminaires à relire à chaque TD |
- Il n'est pas nécessaire d'imprimer tous les énoncés de tous les TD de système. Si vraiment
vous avez envie de massacrer des forêts norvégiennes, faites-le modérément, en imprimant
en plus petit pour gâcher moins de papier. Mieux : n'imprimez que les corrections des TD (si on vous les donne), cela
vous sera plus utile ; pour imprimer du code, utilisez a2ps.
- Avant d'utiliser un appel système ou une fonction, il faut lire sa manpage.
- Les bonnes manpages sont en anglais. Si vous ne comprenez pas la version française, essayez
la version anglaise ("export LC_ALL=en_US" peut aider).
- Si vous avez du mal avec l'anglais, peut-être que l'informatique n'était pas votre voie. Hélas,
la diplomatie internationale (voir plus loin) est aussi à exclure.
- Les bonnes manpages sont en anglais, mais plus encore: une bonne manpage est une
manpage lue (et même "comprise", mais n'en demandons pas trop tout de suite).
- Les manpages sont organisées en sections; par exemple la section 2 contient les appels
système et la section 3 les fonctions de bibliothèque. Pour obtenir la manpage de la fonction de
bibliothèque readdir() il faut faire "man 3 readdir". C'est un cas d'école, car
il existe aussi un appel système readdir() mais personne ne veut l'utiliser, donc c'est la manpage
de la fonction que vous voulez. Retenez ça pour le premier TD !
- Dans les manpages, il y a une section "RETURN VALUE". Il faut la lire aussi,
car beaucoup de fonctions et d'appels système ont une valeur de retour indiquant si une erreur a eu
lieu. Il faut toujours vérifier cette valeur de retour, tout comme vous devez regarder à gauche
avant de traverser l'autoroute lorsque vous êtes un hérisson (et même si vous n'êtes pas un hérisson,
mais on trouve beaucoup de hérissons écrasés, donc un petit conseil n'est pas de trop).
- N'utilisez pas de choses compliquées là où des simples suffisent. En particulier: n'utilisez
jamais malloc(), sauf quand il n'y a vraiment aucune autre solution (et encore). Pour
certains d'entre vous, il est important de montrer qu'on sait utiliser malloc()
et les pointeurs. En fait, il est important de ne pas montrer qu'on ne sait pas utiliser malloc().
- Apprenez à utiliser make et valgrind le plus rapidement possible. Conseil pour les débutants:
positionnez la variable d'environnement CFLAGS="-g -Wall", puis pour compiler toto.c
faites simplement make toto.
- Rappelez-vous toujours, avant de dire "je rajouterai le code pour tester les erreurs plus tard", la
célèbre phrase de Larry : "Ne fais pas ça ! .... Sinon tu meurs !".
- Ne jamais déclarer de buffer de taille arbitraire, comme 100 ou 1000. Toujours déclarer un buffer de
taille buffersize, avec un #define.
- Lorsqu'un appel système échoue, utiliser perror() pour afficher un message d'erreur informatif.
© Université de Marne-la-Vallée