Blog ENI : Toute la veille numérique !
💥 Un livre PAPIER acheté
= La version EN LIGNE offerte pendant 1 an !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. C en action (3ième édition)

C en action (3ième édition)

Informations

Livraison possible dès le 15 octobre 2024
  • Livraison à partir de 0,01 €
  • Version en ligne offerte pendant 1 an
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • Livre (broché) - 17 x 21 cm
  • ISBN : 978-2-7460-0921-1
  • EAN : 9782746092181
  • Ref. ENI : EI3CACT

Informations

  • Consultable en ligne immédiatement après validation du paiement et pour une durée de 10 ans.
  • Version HTML
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • HTML
  • ISBN : 978-2-7460-0935-7
  • EAN : 9782746093577
  • Ref. ENI : LNEI3CACT
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...
Consulter des extraits du livre en ligne Aperçu du livre papier
  • Niveau Confirmé à Expert
  • Nombre de pages 796 pages
  • Parution décembre 2014
  • Niveau Confirmé à Expert
  • Parution décembre 2014
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

Téléchargements

Introduction
  1. Avant-propos
  2. Public visé
  3. Organisation de ce livre
  4. Notes de l'auteur
    1. 1. De la langue française
    2. 2. À propos du mot espace
    3. 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
    2. 2. Les erreurs sur la mémoire
    3. 3. Fichiers inexistants, impossibles à créer  etautres problèmes liés aux fichiers
    4. 4. Résumé des comportements possiblesface à 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
    2. 2. Les protocoles IP, TCP et UDP
    3. 3. Les sockets
    4. 4. Choisir entre TCP/IP et UDP/IP
    5. 5. Remarque sur TCP/IP
    6. 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
Auteur : Yves Mettier

Yves Mettier

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.
En savoir plus

Nos nouveautés

voir plus