A partir du moment où une convention de représentation est choisie, il faut aussi générer et traiter les chaînes représentées selon cette convention, donc des fonctions de gestion adaptées. Fort logiquement, la stdlib a donc fourni des fonctions de gestion adaptées à la convention utilisée par les différents appels système.
Si tu te contente de faire une bibliothèque minimaliste qui ne propose que le minimum pour pouvoir travailer avec l'OS, tu n'en a pas besoin. L'idée c'est que les fondation c'est un langage qui permet d'exprimer tout ce qui est calculatoire, et une bibliothèque qui abstrait un minimum les appels système afin que ce soit portable.
Avec ça tu as une base minimaliste mais relativement portable ; et la dessus tu construit une vrai biliotheque de plus haut niveau.
Dans cette bibliothèque tu peut très bien fournir deux ou trois conventions diffrents pour les chaine de caractères si tu veux que l'utilisateur puisse choisir et aucun d'elles n'est forcée d'utiliser la convention du système qui est en dessous. Tu le dis toi-même dans un message au dessus, en interne, la représentation des chaines en python n'a rien à voir avec des chaine terminées par 0.
Cela me semble bizarre comme explication. Le C a été conçu pour écrire Unix, la motivation principale de la stdlib était donc probablement de faciliter l'écriture des outils système.
(le C n'a pas été un exercice académique de création d'un langage idéal ou désincarné comme l'ont été d'autres langages)
Les origines du C sont bien entendu liés à la création d'Unix, mais le C à pas mal évolué et est passé par plusieurs standardisations. Actuellement on en est au C99, mais le standard le plus connu reste celui que l'on appelle l'ansi/C qui date de 89. Et ces version du C sont différentes sur bien des points du C d'origine.
Au niveau du langage en lui-même, le C89 avait éssayer de rester le plus compatible possible avec les versions les plus utilisée à l'époque (qui était déjà bien différentes des premières version du C) en gardant certains structures mais en les indiquant comme non recomandée. Les prototypes des fonctions en son un exemple typique.
Pour la librairie par contre, si certaines chose on été gardé et si certaines convention sont les même, il y a eu énormément de changement, notament pour des raison de portabilité. Ils ont éssayer de trouver un dénominateur commun à toutes les librairies qui éxistait alors et normalement ils devaient faire les choses proprement... Le soucis est qu'ils ont préféré faire des compromis plutôt que d'aller au font des chose en la nétoyant au maximum quitte à standardiser une bibliothèque plus haut niveau à côté.
[^] # Re: Humm...
Posté par beagf . En réponse à la dépêche Sortie de la version 2.11 de la bibliothèque standard C GNU (glibc). Évalué à 2.
Si tu te contente de faire une bibliothèque minimaliste qui ne propose que le minimum pour pouvoir travailer avec l'OS, tu n'en a pas besoin. L'idée c'est que les fondation c'est un langage qui permet d'exprimer tout ce qui est calculatoire, et une bibliothèque qui abstrait un minimum les appels système afin que ce soit portable.
Avec ça tu as une base minimaliste mais relativement portable ; et la dessus tu construit une vrai biliotheque de plus haut niveau.
Dans cette bibliothèque tu peut très bien fournir deux ou trois conventions diffrents pour les chaine de caractères si tu veux que l'utilisateur puisse choisir et aucun d'elles n'est forcée d'utiliser la convention du système qui est en dessous. Tu le dis toi-même dans un message au dessus, en interne, la représentation des chaines en python n'a rien à voir avec des chaine terminées par 0.
Cela me semble bizarre comme explication. Le C a été conçu pour écrire Unix, la motivation principale de la stdlib était donc probablement de faciliter l'écriture des outils système.
(le C n'a pas été un exercice académique de création d'un langage idéal ou désincarné comme l'ont été d'autres langages)
Les origines du C sont bien entendu liés à la création d'Unix, mais le C à pas mal évolué et est passé par plusieurs standardisations. Actuellement on en est au C99, mais le standard le plus connu reste celui que l'on appelle l'ansi/C qui date de 89. Et ces version du C sont différentes sur bien des points du C d'origine.
Au niveau du langage en lui-même, le C89 avait éssayer de rester le plus compatible possible avec les versions les plus utilisée à l'époque (qui était déjà bien différentes des premières version du C) en gardant certains structures mais en les indiquant comme non recomandée. Les prototypes des fonctions en son un exemple typique.
Pour la librairie par contre, si certaines chose on été gardé et si certaines convention sont les même, il y a eu énormément de changement, notament pour des raison de portabilité. Ils ont éssayer de trouver un dénominateur commun à toutes les librairies qui éxistait alors et normalement ils devaient faire les choses proprement... Le soucis est qu'ils ont préféré faire des compromis plutôt que d'aller au font des chose en la nétoyant au maximum quitte à standardiser une bibliothèque plus haut niveau à côté.