Les bases du développement sous Unix

 

Attention, je suppose que vous connaissez déjà le C/C++ et/ou les commandes shell sous UNIX. Car ils seront fortement utilisés ici !

Sinon, vous vous êtes trompés, et vous pouvez encore faire marche arrière...

Ce que j'écris ici vient d'une doc. que je m'étais fait en 1992.

Je ne refais pas les documents du man, donc pour plus de détails, voir les liens sur la page précédente.

 

Tout d'abord les commandes essentielles pour développer:

- Le compilateur C/C++ (ici ce sera gcc/g++)

- La commande make pour des projets plus complexes

 

Ensuite les fonctions disponibles au développement:

Remarque, les programmes en C doivent être compilés (si si !). En général, je mets un fichier .c. Pour le compiler:

gcc nomfichier.c -o nomfichier

Sinon, je mets un makefile, il suffira de faire make all dans le répertoire du programme à compiler.

- Les variables d'environnement

- Les processus

- Les processus et le Shell

- Lancement d’un processus en arrière plan (&)
- Détacher un processus d’un terminal (plus exactement du shell): NOHUP
- Gérer la priorité des processus (nice et renice)
- Variables du shell ($*, $#, $$, $! et $?)
- Autre manière de lancer un processus sous Shell (le caractère `)
- Lister les PIDs des processus et les informations concernant ces processus (ps)

- Les processus en C

- Remplacer le processus courant par un autre
- Créer un processus fils
- Terminer un processus
- Récupération d'informations sur les processus fils/père
- Des exemples

- Le système de fichiers

- Gestion du système de fichiers avec le Shell
- Plein de commandes shell...

- Gestion du système de fichiers en C
- Gestion d'un fichier par descripteur de fichier (standard Unix)
- Gestion d'un fichier par pointeur de fichier (standard C)
- Lire le status d'un fichier/répertoire
- Lire le contenu d'un répertoire
- Tester ou Modifier les droits d'accès d'un fichier/répertoire
- Gestion des erreurs
- Connaître l'état I/O d'un fichier

- Les signaux

- Introduction
- Liste des signaux
- Les signaux avec le shell
- Prise en compte des signaux en C

- Attendre un certain temps...

- Les fonctions sleep() et select()
- Les fonctions setitimer() et getitimer()

- Gestion de la mémoire

- Allocation d’une zone mémoire
- Modification de la taille d’une zone mémoire
- Libération d’une zone mémoire
- Quelques commandes de manipulation

- Tube

- Le tube anonyme
- Le tube nommé

- Communications inter-processus (SYSTEM V IPC)

- Introduction
- Administration de IPC avec le shell
- Utilisation en C

- Streams

- Les sockets

- Introduction
- Include nécessaire
- Le cas Windows
- Principales fonctions de gestion des sockets
- Des liens intéressants

- Les librairies

- Introduction aux librairies
- Principe de nommage des librairies
- Emplacement des librairies
- Création d'une librairie
- Afficher les dépendances
- Utiliser une librairie dynamique dans votre code
- Les chemins des librairies dynamiques
- Compiler nos programmes utilisant une librairie
- Connaître le contenu d'une librairie statique
- Exemple de librairies

- Syslog

- Pour le développeur
- Exemple de code
- Annexes

- Annexes

- Les différentes valeurs des signaux
- Les droits d'accès aux fichiers/répertoires
- Gestion des erreurs via errno
- Structure IPC - File de messages
- Structure IPC - Mémoire partagée