« Programmation C/Bibliothèque standard » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Tpierron (discussion | contributions)
mAucun résumé des modifications
Tpierron (discussion | contributions)
style trop hautain
Ligne 1 : Ligne 1 :
{{Programmation C}}
{{Programmation C}}


La bibliothèque standard du langage C peut paraître relativement pauvre par rapport à d'autres langages tout en un, comme Python, Ruby, Perl, C# ou Java. Conçue avant tout avec un souci de portabilité, et avec les contraintes matérielles limitées de l'époque, vous obtenez le plus petit dénominateur commun, qui explique en partie l'absence, entre autres, de fonctions graphiques.
La bibliothèque standard du langage C n'est pas ce qui se fait de mieux en la matière. Contrairement au C++, les fonctions proposées sont relativement pauvres, surtout en ce qui concerne la gestion des chaines de caractères. Comparé à un langage tout en un, comme Python, Ruby, C# ou Java, les fonctions qui vont suivre, peuvent paraitre archaïques, bien qu'issues d'une époque où l'optimisation primait grandement sur la simplicité d'utilisation.


Espérer concevoir une application d'envergure avec ces seules fonctions nécessite une extrême rigueur. Il est plus que conseillé de se tourner vers des bibliothèques de plus haut niveaux, afin d'alléger votre labeur. Il en existe heureusement beaucoup, mais bien évidemment rien de standard et dont l'énumération exhaustive est hors de la portée de cet ouvrage.
Concevoir une application avec ces seules fonctions nécessite une très grande rigueur. Il est plus que conseillé de se tourner vers des bibliothèques de plus haut niveaux, afin d'éviter de réinventer inutilement la roue. Il en existe heureusement beaucoup, et ne serait-ce que décrire ce qui existe est bien évidemment hors de la portée de cet ouvrage.


La libc permet toutefois de faire des traitements complexes avec peu d'efforts, pour peu qu'on ait conscience des dangers et des pièges qui sont parfois tendus. Les sections qui suivent permettront de voir un peu plus clair dans les eaux parfois très troubles où navigue le C.
Qui plus est, un point particulièrement sensible en C est la gestion correcte, exhaustive et pertinente des erreurs. Il s'agit d'un point à ne pas sous-estimer : mélanger les cas exceptionnels (erreurs) qui seront exécutés dans 10% des cas, dans le code nominal qui le sera dans 90% des cas, donne une impression confuse et difficile à appréhender de la structure du programme. Hélas, non seulement le C n'offre aucun moyen pour gérer efficacement ce problème (pas de mécanisme d'exception), mais les codes d'erreurs sont au mieux non-standard (différent d'une fonction à l'autre), au pire '''très''' pénible à exploiter (variable <code>errno</code>). La structure de votre programme en sera forcément impactée, un des défis les plus difficiles à surmonter en C, sera de le garder lisible.

Version du 15 juillet 2006 à 04:16


La bibliothèque standard du langage C peut paraître relativement pauvre par rapport à d'autres langages tout en un, comme Python, Ruby, Perl, C# ou Java. Conçue avant tout avec un souci de portabilité, et avec les contraintes matérielles limitées de l'époque, vous obtenez le plus petit dénominateur commun, qui explique en partie l'absence, entre autres, de fonctions graphiques.

Concevoir une application avec ces seules fonctions nécessite une très grande rigueur. Il est plus que conseillé de se tourner vers des bibliothèques de plus haut niveaux, afin d'éviter de réinventer inutilement la roue. Il en existe heureusement beaucoup, et ne serait-ce que décrire ce qui existe est bien évidemment hors de la portée de cet ouvrage.

La libc permet toutefois de faire des traitements complexes avec peu d'efforts, pour peu qu'on ait conscience des dangers et des pièges qui sont parfois tendus. Les sections qui suivent permettront de voir un peu plus clair dans les eaux parfois très troubles où navigue le C.