Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
FORUM LINUX FAQ LINUX TUTORIELS LINUX LIVRES LINUX LINUX TV UNIX GTK+ Qt APACHE

Programmation avancée sous Linux

Date de publication : 28/04/2007 , Date de mise à jour : 28/04/2007

Par Michaël (Autres articles)
 

Ce document est une traduction du livre Advanced Linux Programming (http://www.advancedlinuxprogramming.com) de Mark Mitchell, Jeffrey Oldham et Alex Samuel. La traduction originale est disponible sur http://www.advancedlinuxprogramming-fr.org


Pour commencer
1. Pour Commencer
1-1. L'Éditeur Emacs
1-1-1. Ouvrir un Fichier Source C ou C++
1-1-2. Formatage Automatique
1-1-3. Coloration Syntaxique
1-2. Compiler avec GCC
1-2-1. Compiler un Fichier Source Isolé
1-2-2. Lier les Fichiers Objet
1-3. Automatiser le Processus avec GNU Make
1-4. Déboguer avec le Débogueur GNU (GDB)
1-4-1. Compiler avec les Informations de Débogage
1-4-2. Lancer GDB
1-5. Obtenir Plus d'Informations
1-5-1. Pages de Manuel
1-5-2. Info
1-5-3. Fichiers d'entête
1-5-4. Code Source
Écrire des Logiciels GNU/Linux de Qualité
2. Écrire des Logiciels GNU/Linux de Qualité
2-1. Interaction Avec l'Environnement d'Exécution
2-1-1. La Liste d'Arguments
2-1-2. Conventions de la Ligne de Commande GNU/Linux
2-1-3. Utiliser getopt_long
2-1-4. E/S Standards
2-1-5. Codes de Sortie de Programme
2-1-6. L'Environnement
2-1-7. Utilisation de Fichiers Temporaires
2-1-7-1. Utilisation de mkstemp
2-1-7-2. Utilisation de tmpfile
2-2. Créer du Code Robuste
2-2-1. Utiliser assert
2-2-2. Problèmes Lors d'Appels Système
2-2-3. Codes d'Erreur des Appels Système
2-2-4. Erreurs et Allocation de Ressources
2-3. Écrire et Utiliser des Bibliothèques
2-3-1. Archives
2-3-2. Bibliothèques Partagées
2-3-2-1. Utiliser LD_LIBRARY_PATH
2-3-3. Bibliothèques Standards
2-3-4. Dépendances entre Bibliothèques
2-3-5. Avantages et Inconvénients
2-3-6. Chargement et Déchargement Dynamiques
Processus
3. Processus
3-1. Aperçu des Processus
3-1-1. Identifiants de Processus
3-1-2. Voir les Processus Actifs
3-1-3. Tuer un Processus
3-2. Créer des Processus
3-2-1. Utiliser system
3-2-2. Utiliser fork et exec
3-2-2-1. Appeler fork et exec
3-2-2-2. Utiliser la Famille de exec
3-2-2-3. Utiliser fork et exec
3-2-3. Ordonnancement de Processus
3-3. Signaux
3-4. Fin de Processus
3-4-1. Attendre la Fin d'un Processus
3-4-2. Les Appels Système wait
3-4-3. Processus Zombies
3-4-4. Libérer les Ressources des Fils de Façon Asynchrone
Threads
4. Threads
4-1. Création de Threads
4-1-1. Transmettre des Données à un Thread
4-1-2. Synchroniser des Threads
4-1-3. Valeurs de Retour des Threads
4-1-4. Plus d'Informations sur les Identifiants de Thread
4-1-5. Attributs de Thread
4-2. Annulation de Thread
4-2-1. Threads Synchrones et Asynchrones
4-2-2. Sections Critiques Non-Annulables
4-2-3. Quand Utiliser l'Annulation de Thread?
4-3. Données Propres à un Thread
4-3-1. Libération de Ressources de Thread en C++
4-4. Synchronisation et Sections Critiques
4-4-1. Conditions de Concurrence Critique
4-4-2. Mutexes
4-4-3. Interblocage de Mutexes
4-4-4. Vérification de Mutex non Bloquante
4-4-5. Sémaphores pour les Threads
4-4-6. Variables de Condition
4-4-7. Interblocage avec Deux Threads ou Plus
4-5. Implémentation des Threads sous GNU/Linux
4-5-1. Gestion de Signaux
4-5-2. L'appel Système clone
4-6. Comparaison Processus/Threads
Communication Interprocessus
5. Communication Interprocessus
5-1. Mémoire Partagée
5-1-1. Communication Locale Rapide
5-1-2. Le Modèle Mémoire
5-1-3. Allocation
5-1-4. Attachement et Détachement
5-1-5. Contrôler et Libérer la Mémoire Partagée
5-1-6. Programme Exemple
5-1-7. Débogage
5-1-8. Avantages et Inconvénients
5-2. Sémaphores de Processus
5-2-1. Instanciation et Libération
5-2-2. Initialisation des Sémaphores
5-2-3. Opérations d'Attente et de Réveil
5-2-4. Débogage des Sémaphores
5-3. Mémoire Mappée
5-3-1. Mapper un Fichier Ordinaire
5-3-2. Programmes Exemples
5-3-3. Accès Partagé à un Fichier
5-3-4. Mises en Correspondance Privées
5-3-5. Autres Utilisations de mmap
5-4. Tubes
5-4-1. Créer des Tubes
5-4-2. Communication entre Processus Père et Fils
5-4-3. Rediriger les Flux d'Entrée, de Sortie et d'Erreur Standards
5-4-4. popen et pclose
5-4-5. FIFO
5-4-5-1. Créer une FIFO
5-4-5-2. Accéder à une FIFO
5-4-5-3. Différences avec les Canaux Nommés Windows
5-5. Sockets
5-5-1. Concepts relatifs aux Sockets
5-5-2. Appels Système
5-5-2-1. Créer et Détruire des Sockets
5-5-2-2. Appeler connect
5-5-2-3. Envoyer des Informations
5-5-3. Serveurs
5-5-4. Sockets Locaux
5-5-5. Un Exemple Utilisant les Sockets Locaux
5-5-6. Sockets Internet
5-5-7. Couples de Sockets
Périphériques
6. Périphériques
6-1. Types de Périphériques
6-2. Numéros de Périphérique
6-3. Fichiers de Périphériques
6-3-1. Le Répertoire /dev
6-3-2. Accéder à des Périphériques en Ouvrant des Fichiers
6-4. Périphériques Matériels
6-5. Périphériques Spéciaux
6-5-1. /dev/null
6-5-2. /dev/zero
6-5-3. /dev/full
6-5-4. Dispositifs de Génération de Nombres Aléatoires
6-5-5. Périphériques Loopback
6-6. PTY
6-6-1. Exemple d'utilisation des PTY
6-7. ioctl
Le système de fichiers /proc
7. Le Système de Fichiers /proc
7-1. Obtenir des Informations à partir de /proc
7-2. Répertoires de Processus
7-2-1. /proc/self
7-2-2. Liste d'Arguments d'un Processus
7-2-3. Environnement de Processus
7-2-4. Exécutable de Processus
7-2-5. Descripteurs de Fichiers d'un Processus
7-2-6. Statistiques Mémoire de Processus
7-2-7. Statistiques sur les Processus
7-3. Informations sur le Matériel
7-3-1. Informations sur le Processeur
7-3-2. Informations sur les Périphériques
7-3-3. Informations sur le Bus PCI
7-3-4. Informations sur le Port Série
7-4. Informations sur le Noyau
7-4-1. Informations de Version
7-4-2. Noms d'Hôte et de Domaine
7-4-3. Utilisation Mémoire
7-5. Lecteurs et Systèmes de Fichiers
7-5-1. Systèmes de Fichiers
7-5-2. Lecteurs et Partitions
7-5-3. Points de Montage
7-5-4. Verrous
7-6. Statistiques Système
Appels système Linux
8. Appels Système Linux
8-1. Utilisation de strace
8-2. access : Tester les Permissions d'un Fichier
8-3. fcntl : Verrous et Opérations sur les Fichiers
8-4. fsync et fdatasync : Purge des Tampons Disque
8-5. getrlimit et setrlimit : Limites de Ressources
8-6. getrusage : Statistiques sur les Processus
8-7. gettimeofday : Heure Système
8-8. La famille mlock : Verrouillage de la Mémoire Physique
8-9. mprotect : Définir des Permissions Mémoire
8-10. nanosleep : Pause en Haute Précision
8-11. readlink : Lecture de Liens Symboliques
8-12. sendfile : Transferts de Données Rapides
8-13. setitimer : Créer des Temporisateurs
8-14. sysinfo : Récupération de Statistiques Système
8-15. uname
Code assembleur en ligne
9. Code Assembleur en Ligne
9-1. Quand Utiliser du Code Assembleur
9-2. Assembleur en Ligne Simple
9-2-1. Convertir un asm en Instructions Assembleur
9-3. Syntaxe Assembleur Avancée
9-3-1. Instructions Assembleur
9-3-2. Sorties
9-3-3. Entrées
9-3-4. Déclaration des Modifications
9-3-5. Exemple
9-4. Problèmes d'Optimisation
9-5. Problèmes de Maintenance et de Portabilité
Sécurité
10. Sécurité
10-1. Utilisateurs et Groupes
10-1-1. Le superutilisateur
10-2. User et Group ID de Processus
10-3. Permissions du Système de Fichiers
10-3-1. Faille de sécurité: les Programmes non Exécutables
10-3-2. Sticky Bits
10-4. ID Réels et Effectifs
10-4-1. Programmes Setuid
10-5. Authentifier les utilisateurs
10-6. Autres failles de sécurité
10-6-1. Dépassement de tampon
10-6-2. Conditions de concurrence critique dans /tmp
10-6-3. Utilisation de system ou popen
Annexe A : autres outils de développement
11. Autres Outils de Développement
11-1. Analyse Statique de Programmes
11-2. Détection des Erreurs d'Allocation Dynamique
11-2-1. Programme de Test d'Allocation et de Libération Mémoire
11-2-2. Vérification par malloc
11-2-3. Recherche de Fuites Mémoire avec mtrace
11-2-4. Utiliser ccmalloc
11-2-5. Electric Fence
11-2-6. Choisir Parmi les Différents Outils de Débogage Mémoire
11-2-7. Code Source du Programme d'Allocation Dynamique de Mémoire
11-3. Profilage
11-3-1. Une Calculatrice Simplifiée
11-3-2. Collecter des Informations de Profilage
11-3-3. Affichage des Données de Profilage
11-3-4. Comment gprof Collecte les Données
11-3-5. Code Source de la Calculatrice
Annexe B : E/S de bas niveau
12. E/S de Bas Niveau
12-1. Lire et Écrire des Données
12-1-1. Ouvrir un Fichier
12-1-2. Fermer un fichier
12-1-3. Écrire des données
12-1-4. Lecture de Données
12-1-5. Se Déplacer dans un Fichier
12-2. stat
12-3. Écriture et Lecture Vectorielles
12-4. Lien avec les Functions d'E/S Standards du C
12-5. Autres Opérations sur les Fichiers
12-6. Lire le Contenu d'un Répertoire
Annexe C : tableau des signaux
13. Tableau des Signaux
Annexe D : ressources en ligne
14. Ressources en Ligne
14-1. Informations Générales
14-2. Informations sur les Logiciels GNU/Linux
14-3. Autres Sites
Annexe E : Open Publication License version 1.0
15. Open Publication License Version 1.0
15-1. Conditions Applicables aux Versions Modifiées ou Non
15-2. Copyright
15-3. Portée de cette Licence
15-4. Conditions Applicables aux Travaux Modifiés
15-5. Bonnes Pratiques
15-6. Options Possibles
15-7. Annexe à la Licence Open Publication
Annexe F : Licence Publique Générale GNU
16. Licence Publique Générale GNU
16-1. Préambule
16-2. Conditions de copie, distribution et modification de la Licence Publique Générale GNU.
16-2-1. ABSENCE DE GARANTIE
16-3. Comment appliquer ces conditions à vos nouveaux programmes




Valid XHTML 1.1!Valid CSS!

Copyright © 2007 Mark Mitchell, Jeffrey Oldham et Alex Samuel. Ce document ne peut être distribué que dans le respect des termes et conditions définies par l?Open Poublication License, v1.0 ou ultérieure (la dernière version est disponible sur http://www.opencontent.org/openpub/).
Responsable bénévole de la rubrique Linux Professionnel : Olivier Van Hoof - Contacter par EMail :
Vos questions techniques : forum d'entraide Linux Professionnel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.