1. Livres et vidéos
  2. C en action (3ième édition)

C en action (3ième édition)

  • Accès illimité 24h/24, 7J/7
  • Tous les livres en ligne, les vidéos et les cours enregistrés ENI
  • Plus de 10 nouveautés livres et vidéos chaque mois
  • Les nouveautés disponibles le jour de leur sortie
  • Accès 100% en ligne
  • En stock
  • Expédié en 24h00
  • Livraison à partir de 0,01 €
  • Version en ligne offerte pendant 1 an
  • 1 h d'accès gratuit à tous nos livres et vidéos pour chaque commande
  • Accessible immédiatement
  • Version HTML
  • Accès illimité 24h/24, 7J/7

Présentation

Ce livre sur le langage C s'adresse aux lecteurs qui souhaitent programmer en C, du débutant à l'expert. Il rassemble une sélection de solutions efficaces face aux problèmes le plus souvent rencontrés. À la fois une source d'idées, un moyen d'apprendre le C par l'exemple ou de programmer plus vite et plus facilement, cet ouvrage est construit sur le modèle : un problème, une solution, une discussion. Les experts trouveront dans la partie "discussion" des pistes pour optimiser les solutions au niveau ressources ou pour faciliter la programmation.

Cette nouvelle édition intègre les évolutions apportées par la nouvelle norme C11 du langage parue en décembre 2011. Les recettes la prennent en compte et un nouveau chapitre complète l'ouvrage pour répondre aux interrogations les plus courantes face à cette nouvelle norme (structures et unions anonymes, suppression de gets(), expressions à type générique…). Elle conserve par ailleurs les recettes qui ont fait le succès des éditions précédentes et en particulier le premier chapitre sur les bases du langage, particulièrement adapté aux débutants mais également pratique pour les experts qui souhaitent retrouver un point précis du langage. Quelques nouvelles recettes font également leur apparition dont une qui vous permet de créer un serveur web en quelques dizaines de lignes de code.

Toutes ces recettes couvrent un éventail de tâches simples ou complexes et la plupart des chapitres proposent le code source en téléchargement sur le site www.editions-eni.fr.

Les chapitres du livre :
Introduction - Bases du langage C - Outils de compilation - Bibliothèques et fonctions - Débogage d'un programme - L'art de programmer en C - Gestion des erreurs - Structures de données - Dates et heures - Chaînes de caractères - Gestion de la mémoire - Gestion des répertoires et des fichiers - Contenu des fichiers - Réseau - Protocoles réseau – Signaux - Exécution parallèle - Système et processus - Internationalisation - Compression - XML avec libxml2 - Bases de données - Automatisation de la compilation - C11 et les normes du langage C

Table des matières

  • Introduction
    • 1. Avant-propos
    • 2. Public visé
    • 3. Organisation de ce livre
    • 4. Notes de l'auteur
      • 4.1 De la langue française
      • 4.2 À propos du mot espace
      • 4.3 De la langue utilisée dans les exemples
    • 5. Conventions utilisées
    • 6. Les exemples
    • 7. Remerciements
  • Bases du langage C
    • 1. Introduction
    • 2. Écrire son premier programme
    • 3. Commenter du code
    • 4. Utiliser des variables et des chaînes de caractères
    • 5. Définir et utiliser des constantes
    • 6. Utiliser les opérations de base
    • 7. Utiliser les opérateurs mathématiques
    • 8. Afficher une expression
    • 9. Exécuter du code de façon conditionnelle
    • 10. Exécuter du code en boucle
    • 11. Définir et utiliser un tableau
    • 12. Définir et utiliser une structure
    • 13. Définir et utiliser un pointeur
    • 14. Définir et utiliser une union
    • 15. Définir et utiliser une fonction
    • 16. Passer des paramètres à une fonction
    • 17. Utiliser une fonction de façon récursive
    • 18. Écrire un fichier d'en-têtes
    • 19. Compiler une section de code en fonction d'une condition
    • 20. Exécuter une fonction avant la fin du programme
  • Outils de compilation
    • 1. Introduction
    • 2. Compiler un programme
    • 3. Automatiser la compilation avec make
    • 4. Bien répartir le code sur plusieurs fichiers
    • 5. Obtenir des binaires optimisés
    • 6. Passer des paramètres au préprocesseur
  • Bibliothèques et fonctions
    • 1. Introduction
    • 2. Créer et utiliser une bibliothèque avec les outils GNU
    • 3. Charger une bibliothèque de manière dynamique
    • 4. Lancer une fonction d'une bibliothèque dynamique
    • 5. Écrire un greffon
    • 6. Lancer une fonction du programme depuis la bibliothèque dynamique
    • 7. Créer une bibliothèque dynamique liée statiquement aux bibliothèques dont elle dépend
  • Débogage d'un programme
    • 1. Introduction
    • 2. Déboguer proprement avec printf()
    • 3. Déterminer où le programme stoppe
    • 4. Afficher le contenu d'une variable
    • 5. Retarder l'arrêt intempestif d'un programme pour sauvegarder des données
  • L'art de programmer en C
    • 1. Limiter les risques d'erreurs de segmentation
    • 2. Écrire du code réutilisable
    • 3. Faire renvoyer plusieurs valeurs à une fonction
    • 4. Le bon usage des macros
    • 5. Goto et les traitements d'exception
  • Gestion des erreurs
    • 1. Introduction
      • 1.1 Fautes de frappe
      • 1.2 Les erreurs sur la mémoire
      • 1.3 Fichiers inexistants, impossibles à créer et autres problèmes liés aux fichiers
      • 1.4 Résumé des comportements possibles face à une erreur
    • 2. Récupérer le code d'erreur
    • 3. Récupérer le descriptif de l'erreur
    • 4. Garder une trace de l'exécution d'un programme
    • 5. Créer une fonction de journalisation
    • 6. Utiliser syslog
  • Structures de données
    • 1. Introduction
    • 2. Choisir une structure pour une liste de données
    • 3. Choisir une structure pour des données sous forme clé-valeur
    • 4. Choisir une structure pour des données sous forme de graphe
    • 5. Coder un tableau dont l'index est une chaîne de caractères
    • 6. Choisir une structure pour un tableau dont l'index est un entier
    • 7. Optimiser la recherche d'une aiguille dans une botte de foin
    • 8. Trier une liste selon un critère donné
    • 9. Supprimer les doublons dans une structure de données
  • Dates et heures
    • 1. Introduction
    • 2. Récupérer la date et l'heure courante
    • 3. Connaître le jour de la semaine
    • 4. Effectuer des calculs sur les dates
    • 5. Convertir une estampille en struct tm et réciproquement
    • 6. Convertir une estampille ou un struct tm en chaîne de caractères
    • 7. Convertir une chaîne de caractères en estampille ou en struct tm
    • 8. Faire une pause
    • 9. Calculer le temps mis par un extrait de programme à s'exécuter
  • Chaînes de caractères
    • 1. Introduction
    • 2. Allouer la mémoire pour une chaîne de caractères
    • 3. Copier une chaîne de caractères
    • 4. Analyser une chaîne de caractères, caractère par caractère
    • 5. Concaténer deux chaînes de caractères
    • 6. Convertir un nombre en chaîne de caractères et réciproquement
    • 7. Transformer une chaîne de caractères avec des retours chariot en un tableau de chaînes de caractères
    • 8. Découper une chaîne de caractères en fonction d'un séparateur
    • 9. Récupérer le chemin et le nom d'un fichier spécifiés dans une chaîne de caractères
    • 10. Remplacer une sous-chaîne par une autre sous-chaîne dans une chaîne de caractères
    • 11. Déterminer si une chaîne de caractères est contenue dans une autre et à quelle position
    • 12. Déterminer si une chaîne de caractères correspond au motif précisé dans une expression régulière
    • 13. Trouver le nombre d'occurrences d'une chaîne de caractères dans une autre
    • 14. Traiter les blancs au début et à la fin d'une chaîne
    • 15. Transformer tout séparateur par une espace
    • 16. Transformer une chaîne en minuscules ou en majuscules
  • Gestion de la mémoire
    • 1. Introduction
    • 2. Allouer de la mémoire
    • 3. Créer son gestionnaire de mémoire
    • 4. Redéfinir les fonctions d'allocation de mémoire
    • 5. Tracer les allocations de mémoire
    • 6. Créer de la mémoire partagée entre processus
  • Gestion des répertoires et des fichiers
    • 1. Introduction
    • 2. Connaître le contenu d'un répertoire
    • 3. Effectuer une opération récursivement sur tous les fichiers d'un répertoire et de ses sous-répertoires
    • 4. Effacer un répertoire et tout son contenu
    • 5. Obtenir des informations sur un fichier
    • 6. Modifier la date de dernière modification d'un fichier
    • 7. Créer un fichier
    • 8. Renommer un fichier
    • 9. Copier un fichier
    • 10. Déplacer un fichier
    • 11. Supprimer un fichier
    • 12. Créer un répertoire
    • 13. Créer un lien symbolique
    • 14. Obtenir le répertoire courant
    • 15. Reconnaître que deux noms correspondent au même fichier
  • Contenu des fichiers
    • 1. Introduction
    • 2. Lire un fichier
    • 3. Écrire dans un fichier
    • 4. Lire un fichier de configuration simple
    • 5. Rechercher une donnée dans un fichier texte
    • 6. Ajouter des données à un fichier
    • 7. Remplacer des données dans un fichier
    • 8. Supprimer une partie d'un fichier
    • 9. Calculer combien de lignes ou de caractères contient un fichier
    • 10. Calculer la taille d'un fichier
    • 11. Effectuer une lecture non bloquante d'un fichier
    • 12. Classer un fichier texte
    • 13. Lire un fichier au format DOS
    • 14. Poser un verrou sur un fichier
    • 15. Créer des fichiers temporaires
    • 16. Lire en continu dans un fichier qui croît
  • Réseau
    • 1. Introduction
      • 1.1 Les couches réseau
      • 1.2 Les protocoles IP, TCP et UDP
      • 1.3 Les sockets
      • 1.4 Choisir entre TCP/IP et UDP/IP
      • 1.5 Remarque sur TCP/IP
      • 1.6 Au programme
    • 2. Créer un serveur TCP/IP
    • 3. Créer un client TCP/IP
    • 4. Créer un client et un serveur UDP/IP
    • 5. Sécuriser une connexion avec SSL/TLS
    • 6. Connaître le nom et l'adresse IP de ma machine
    • 7. Connaître l'adresse IP d'une machine à partir de son nom
    • 8. Créer un serveur TCP/IP multi-processus
    • 9. Créer un serveur TCP/IP multi-thread
    • 10. Créer un serveur TCP/IP mono-processus sans thread
    • 11. Créer un serveur TCP/IP ou UDP/IP qui utilise le démon inetd
    • 12. Résoudre le problème des architectures petit et gros boutistes
    • 13. Modifier les options sur une socket
  • Protocoles réseau
    • 1. Introduction
    • 2. Faire suivre un port
    • 3. Obtenir une page web d'un serveur HTTP ou HTTPS
    • 4. Télécharger et transférer des fichiers avec le protocole FTP
    • 5. Créer un serveur HTTP
    • 6. Envoyer un courrier électronique
    • 7. Récupérer un message électronique sur un serveur POP3
    • 8. Récupérer un message électronique sur un serveur IMAP
    • 9. Rechercher et lire un courrier dans une boîte au format maildir
    • 10. Rechercher et lire un courrier dans une boîte au format mbox
  • Signaux
    • 1. Introduction
    • 2. Mettre en place un gestionnaire de signaux
    • 3. Bloquer des signaux
    • 4. Connaître le masque de blocage des signaux
    • 5. Savoir si un signal a été bloqué
    • 6. Intercepter [Ctrl] C
    • 7. Envoyer un signal
    • 8. Sauvegarder un gestionnaire de signaux et le restaurer par la suite
    • 9. Limiter le temps d'exécution d'une partie d'un programme
  • Exécution parallèle
    • 1. Introduction
    • 2. Créer un nouveau processus
    • 3. Éviter les processus zombies
    • 4. Créer un nouveau thread
    • 5. Limiter l'accès à une section critique
    • 6. Communiquer entre deux processus distincts
  • Système et processus
    • 1. Introduction
    • 2. Lancer un programme
    • 3. Lancer un script Perl
    • 4. Récupérer le code de retour d'un programme qui s'est terminé
    • 5. Récupérer la sortie standard d'un programme
    • 6. Récupérer les arguments passés sur la ligne de commande
    • 7. Envoyer des données sur l'entrée standard d'un programme
    • 8. Lire une chaîne de caractères depuis l'entrée standard
    • 9. Lire un mot de passe sur l'entrée standard
    • 10. Partager un identifiant de fichier entre deux programmes
    • 11. Connaître le PID du processus et celui de son père
    • 12. Créer un démon
    • 13. Connaître l'utilisateur qui a lancé le programme
    • 14. Changer d'identité
  • Internationalisation
    • 1. Introduction
    • 2. Internationaliser un programme avec gettext
    • 3. Traduire un programme internationalisé avec gettext
    • 4. Maintenir à jour la liste des chaînes à traduire
    • 5. Éviter certains pièges linguistiques
  • Compression
    • 1. Introduction
    • 2. Lire un fichier compressé
    • 3. Écrire un fichier compressé
    • 4. Compresser des données en mémoire
    • 5. Décompresser des données en mémoire
    • 6. Décompresser un fichier tar.gz ou tar.bz2
  • XML avec libxml2
    • 1. Introduction
    • 2. Lire un document XML
    • 3. Transformer un arbre DOM en XML
    • 4. Ajouter un nœud à un arbre DOM
    • 5. Modifier un nœud d'un arbre DOM
    • 6. Supprimer un nœud d'un arbre DOM
    • 7. Parcourir un arbre DOM
    • 8. Rechercher un nœud ou un ensemble de nœuds avec XPath dans un arbre DOM
    • 9. Créer et utiliser un fichier de configuration en XML
    • 10. Parcourir un document XML avec SAX
    • 11. Rechercher une donnée dans un document XML (SAX)
    • 12. Lire un flux de données XML
    • 13. Transformer un document XML avec XSLT
  • Bases de données
    • 1. Introduction
    • 2. Effectuer une requête sur un serveur PostgreSQL
    • 3. Effectuer une requête sur un serveur MySQL
    • 4. Effectuer une requête sur une base de données SQLite3
    • 5. Effectuer une requête sur un serveur de bases de données compatible ODBC
  • Automatisation de la compilation
    • 1. Introduction
    • 2. Démarrer un projet avec autoconf et automake
    • 3. Ajouter des tests de fonctions ou de bibliothèques
    • 4. Récupérer les variables de la commande ./configure
    • 5. Passer des options supplémentaires au compilateur
    • 6. Prendre en compte l'internationalisation d'un projet
    • 7. Utiliser autoconf, automake et libtool pour créer une bibliothèque
    • 8. Créer une bibliothèque et l'utiliser dans un projet avec autoconf et automake
  • C11 et les normes du langage C
    • 1. Introduction
    • 2. Obtenir la norme C11
    • 3. Programmer et compiler avec la norme C11
    • 4. Principaux ajouts et modifications apportés par la norme C11
    • Index

Auteur

Yves MettierEn savoir plus

Actuellement Ingénieur Systèmes et Réseaux en environnement Unix et Linux chez Logica, Yves Mettier a développé et maintenu une application en C en réseau sur plusieurs centaines de serveurs lors de ses précédentes missions. Il a participé à plusieurs projets de logiciels libres (dont une contribution majeure sur Perfparse) et fut par ailleurs responsable de la rubrique Langage C chez GNU/Linux France Magazine. Son livre est le fruit d'une longue pratique de ce langage et fournit au lecteur un ensemble de solutions efficaces pour le maîtriser.

Caractéristiques

  • Niveau Confirmé à Expert
  • Nombre de pages 796 pages
  • Parution décembre 2014
    • Livre (broché) - 17 x 21 cm
    • ISBN : 978-2-7460-0921-1
    • EAN : 9782746092181
    • Ref. ENI : EI3CACT
  • Niveau Confirmé à Expert
  • Parution décembre 2014
    • HTML
    • ISBN : 978-2-7460-0935-7
    • EAN : 9782746093577
    • Ref. ENI : LNEI3CACT

Téléchargements

En complétant ce formulaire, vous acceptez d'être contacté afin de recevoir des informations sur nos produits et services ainsi que nos communications marketing. Vous aurez la possibilité de vous désabonner de nos communications à tout moment. Pour plus d'informations sur notre politique de protection des données, cliquez ici.
  • Des fichiers complémentaires (92,8 Ko)