Les fonctions de la librairie sql.h
Fermé
raleb
Messages postés
2
Date d'inscription
samedi 1 juin 2013
Statut
Membre
Dernière intervention
4 juin 2013
-
1 juin 2013 à 16:03
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 6 juin 2013 à 23:17
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 6 juin 2013 à 23:17
3 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
1 juin 2013 à 21:01
1 juin 2013 à 21:01
sql.h n'est pas une bibliothèque mais un header.
Pour connaître les fonctions, il suffit de lire le fichier sql.h qui contient également leur prototype.
Cdlt,
Pour connaître les fonctions, il suffit de lire le fichier sql.h qui contient également leur prototype.
Cdlt,
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
3 juin 2013 à 20:52
3 juin 2013 à 20:52
Mais quand est ce qu'on appelle un fichier .h un header et quand est ce qu'on l'appelle bibliothèque!!?
Jamais... Un .h est un header.
La bibliothèque, c'est autre chose (.dll, .lib, .a, ...). Les fonctionnalités sont contenues dans la bibliothèque, et l'interface (header) contient les prototypes.
Cdlt,
Jamais... Un .h est un header.
La bibliothèque, c'est autre chose (.dll, .lib, .a, ...). Les fonctionnalités sont contenues dans la bibliothèque, et l'interface (header) contient les prototypes.
Cdlt,
raleb
Messages postés
2
Date d'inscription
samedi 1 juin 2013
Statut
Membre
Dernière intervention
4 juin 2013
4 juin 2013 à 12:20
4 juin 2013 à 12:20
ah d'accord!!!je croyais que librairie et bibliothèque c'est la même chose avec par exemple stdio.h et les autres librairie standard!!!mdr
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié par [Dal] le 4/06/2013 à 13:59
Modifié par [Dal] le 4/06/2013 à 13:59
Salut raleb,
"Library" est un terme en langue anglaise, dont la traduction est "bibliothèque". Donc les termes une "library" et une "bibliothèque" se réfèrent effectivement à la même chose.
Cependant, lorsque tu dis que "stdio.h" est une "librairie standard", tu fais un raccourcis de langage.
En effet, "stdio.h" est un simple fichier texte livré avec ton compilateur, que tu peux trouver sur ton ordinateur et ouvrir, et si tu le fais, tu verras qu'il définit, comme le dit fiddy, les prototypes des fonctions contenues dans la bibliothèque, mais pas les fonctions elles-mêmes, dont l'implémentation figure ailleurs (pour ces bibliothèque dans du code objet livré avec le compilateur).
La "bibliothèque" ou "library", c'est, en réalité, la conjonction des deux : le fichier .h et l'implémentation pour laquelle elle constitue une interface.
Sinon, pour ta question d'origine, le fichier sql.h n'étant pas documenté dans Dev-C++, tu vas galérer dur en te tapant le .h et en essayant de comprendre comment le faire fonctionner.
Ce n'est pas une bibliothèque standard du C. Je pense qu'elle tente de répliquer les bibliothèque homonymes livrées avec les compilateurs de Microsoft (la documentation serait à rechercher là, certainement).
Sinon, tu peux chercher du code fait sur Dev-C++, utilisant cette bibliothèque et t'en inspirer.
Par exemple, là :
https://codes-sources.commentcamarche.net/
Enfin, tu pourrais compléter tes connaissances en C en lisant de la doc sur la programmation modulaire, les fichiers .h / .c (hormis l'usage de bibliothèques) étant un moyen efficace de structurer des programmes en unités gérables plus facilement, raccourcissant les temps de compilation, permettant de créer du code générique (que tu peux éventuellement transformer en bibliothèque en suite - ou simplement inclure dans d'autres projets).
Tu as un bon papier sur la question là :
http://www.umich.edu/~eecs381/handouts/CHeaderFileGuidelines.pdf?
qui est un support de cours fait par un professeur de l'Université du Michigan.
Dal
"Library" est un terme en langue anglaise, dont la traduction est "bibliothèque". Donc les termes une "library" et une "bibliothèque" se réfèrent effectivement à la même chose.
Cependant, lorsque tu dis que "stdio.h" est une "librairie standard", tu fais un raccourcis de langage.
En effet, "stdio.h" est un simple fichier texte livré avec ton compilateur, que tu peux trouver sur ton ordinateur et ouvrir, et si tu le fais, tu verras qu'il définit, comme le dit fiddy, les prototypes des fonctions contenues dans la bibliothèque, mais pas les fonctions elles-mêmes, dont l'implémentation figure ailleurs (pour ces bibliothèque dans du code objet livré avec le compilateur).
La "bibliothèque" ou "library", c'est, en réalité, la conjonction des deux : le fichier .h et l'implémentation pour laquelle elle constitue une interface.
Sinon, pour ta question d'origine, le fichier sql.h n'étant pas documenté dans Dev-C++, tu vas galérer dur en te tapant le .h et en essayant de comprendre comment le faire fonctionner.
Ce n'est pas une bibliothèque standard du C. Je pense qu'elle tente de répliquer les bibliothèque homonymes livrées avec les compilateurs de Microsoft (la documentation serait à rechercher là, certainement).
Sinon, tu peux chercher du code fait sur Dev-C++, utilisant cette bibliothèque et t'en inspirer.
Par exemple, là :
https://codes-sources.commentcamarche.net/
Enfin, tu pourrais compléter tes connaissances en C en lisant de la doc sur la programmation modulaire, les fichiers .h / .c (hormis l'usage de bibliothèques) étant un moyen efficace de structurer des programmes en unités gérables plus facilement, raccourcissant les temps de compilation, permettant de créer du code générique (que tu peux éventuellement transformer en bibliothèque en suite - ou simplement inclure dans d'autres projets).
Tu as un bon papier sur la question là :
http://www.umich.edu/~eecs381/handouts/CHeaderFileGuidelines.pdf?
qui est un support de cours fait par un professeur de l'Université du Michigan.
Dal
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
4 juin 2013 à 20:04
4 juin 2013 à 20:04
Nope, la bibliothèque ne designe que le fichier contenant le code.
Le .h n'en fait pas partie. Mais il est nécessaire à l'utilisation de la bibliothèque.
Le .h n'en fait pas partie. Mais il est nécessaire à l'utilisation de la bibliothèque.
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
5 juin 2013 à 14:17
5 juin 2013 à 14:17
Salut fiddy,
Alors comme raleb ne réagit pas aux indications que je lui donne sur l'usage de "sql.h" (qui était quand même sa question d'origine), je vais me permettre d'embrayer sur la discussion lancée (suite à la 2ème question de raleb - raleb, si tu es là, poste en cliquant sur "Répondre au sujet", plutôt qu'en commentaire ici).
C'est un peu long, mais comme AMHA je ne suis pas d'accord avec fiddy, je me dois d'argumenter :-P
Après avoir potassé un peu, il ne me semble pas que le standard du C donne une définition de ce qu'est une "bibliothèque", et je ne trouve pas de définition excluant explicitement ou incluant explicitement le fichier .h dans le concept de "bibliothèque". Si tu as une référence, elle est la bienvenue !
Alors, je pense qu'il y a une place à la discussion, et au bon sens, et que le terme peut aussi avoir des sens différents en fonction du contexte du type de bibliothèque dont on parle et du type d'utilisation.
Le concept de bibliothèque est simple, à la manière d'une vraie bibliothèque, on trouve du code sur "étagère", directement utilisable pour effectuer une tache prédéfinie.
Le fichier .h, qui décrit l'interface permettant l'utilisation de l'implémentation de la bibliothèque, est une création du concepteur de la bibliothèque, au même titre que l'implémentation elle-même.
Lorsqu'il divulgue son travail et que celui-ci est destiné à être utilisé par d'autres programmeurs, il divulgue sa bibliothèque avec la partie implémentation (sous forme source ou sous forme objet) et avec sa partie de description d'interface, autrement elle ne serait pas utilisable (comme tu le dis). Il sont mis à disposition dans un même package, qui permet au développeur de disposer de la bibliothèque dans sa "version de développement".
Tu as aussi raison de dire que la partie implémentation seule est la bibliothèque dans un certain sens. Par exemple, une bibliothèque compilée pour être distribuée et utilisée sur des systèmes où des programmes existants (éventuellement différents) pourront en faire usage car ils sont conçus pour en faire usage dynamique. Dans ce cas la "bibliothèque" mise à disposition est le fichier .dll, ou .so compilé, car le fichier .h additionnel n'a pas (plus) à être utilisé par les programmes déjà conçus. Le package comportant la "bibliothèque" qui peut alors être distribué pour ce type d'usage n'inclue pas le .h. C'est la bibliothèque dans sa "version utilisateur".
Ce dernier cas de la "version utilisateur", est, si on fait un parallèle avec la bibliothèque municipale, le cas où je veux faire une recherche d'un ouvrage sur un certain sujet, mais où je délègue à quelqu'un (qui connait le fonctionnement de la bibliothèque) le soin de l'effectuer effectivement, et de me donner le résultat de la recherche.
Le cas de la bibliothèque dans sa "version de développement", dans un parallèle avec la bibliothèque municipale, est le cas où je veux utiliser la bibliothèque pour y rechercher moi même un ouvrage qui peut m'intéresser sur un sujet. Dans ce cas, je ne concevrai pas qu'il n'y ait pas dans la bibliothèque elle-même, une indication des thèmes des ouvrages dans les rayons, une indication des noms des ouvrages que je puisse lire (sur la tranche, ou dans un index), me donnant la possibilité de trouver l'ouvrage, le prendre l'ouvrage et de le lire, etc. Ce que je veut dire par là, c'est que dans le sens premier de "bibliothèque", il y a aussi celui d'organisation et de structuration (le TLFi a cette définition : "Bâtiment, salle où sont déposées, rangées, cataloguées diverses collections de livres, périodiques et autres documents que le public peut, sous certaines conditions, consulter sur place ou emprunter."). Une bibliothèque municipale sans catalogue, ou moyen de recherche, ne permettant pas aux visiteurs de rechercher, prendre les ouvrages et de les lire ne serait pas une réelle bibliothèque, car elle ne fournirait pas le service attendu d'une bibliothèque. D'un point de vue sémantique, cela ne serait pas une bibliothèque.
Le fichier .h, c'est le catalogue, ou l'index de ma bibliothèque municipale, dans une bibliothèque où les noms des ouvrages sont lisibles sur la tranche (et où j'ai, en plus, avant de les lire, accès à une idée de ce qu'ils contiennent).
Dal
Alors comme raleb ne réagit pas aux indications que je lui donne sur l'usage de "sql.h" (qui était quand même sa question d'origine), je vais me permettre d'embrayer sur la discussion lancée (suite à la 2ème question de raleb - raleb, si tu es là, poste en cliquant sur "Répondre au sujet", plutôt qu'en commentaire ici).
C'est un peu long, mais comme AMHA je ne suis pas d'accord avec fiddy, je me dois d'argumenter :-P
Après avoir potassé un peu, il ne me semble pas que le standard du C donne une définition de ce qu'est une "bibliothèque", et je ne trouve pas de définition excluant explicitement ou incluant explicitement le fichier .h dans le concept de "bibliothèque". Si tu as une référence, elle est la bienvenue !
Alors, je pense qu'il y a une place à la discussion, et au bon sens, et que le terme peut aussi avoir des sens différents en fonction du contexte du type de bibliothèque dont on parle et du type d'utilisation.
Le concept de bibliothèque est simple, à la manière d'une vraie bibliothèque, on trouve du code sur "étagère", directement utilisable pour effectuer une tache prédéfinie.
Le fichier .h, qui décrit l'interface permettant l'utilisation de l'implémentation de la bibliothèque, est une création du concepteur de la bibliothèque, au même titre que l'implémentation elle-même.
Lorsqu'il divulgue son travail et que celui-ci est destiné à être utilisé par d'autres programmeurs, il divulgue sa bibliothèque avec la partie implémentation (sous forme source ou sous forme objet) et avec sa partie de description d'interface, autrement elle ne serait pas utilisable (comme tu le dis). Il sont mis à disposition dans un même package, qui permet au développeur de disposer de la bibliothèque dans sa "version de développement".
Tu as aussi raison de dire que la partie implémentation seule est la bibliothèque dans un certain sens. Par exemple, une bibliothèque compilée pour être distribuée et utilisée sur des systèmes où des programmes existants (éventuellement différents) pourront en faire usage car ils sont conçus pour en faire usage dynamique. Dans ce cas la "bibliothèque" mise à disposition est le fichier .dll, ou .so compilé, car le fichier .h additionnel n'a pas (plus) à être utilisé par les programmes déjà conçus. Le package comportant la "bibliothèque" qui peut alors être distribué pour ce type d'usage n'inclue pas le .h. C'est la bibliothèque dans sa "version utilisateur".
Ce dernier cas de la "version utilisateur", est, si on fait un parallèle avec la bibliothèque municipale, le cas où je veux faire une recherche d'un ouvrage sur un certain sujet, mais où je délègue à quelqu'un (qui connait le fonctionnement de la bibliothèque) le soin de l'effectuer effectivement, et de me donner le résultat de la recherche.
Le cas de la bibliothèque dans sa "version de développement", dans un parallèle avec la bibliothèque municipale, est le cas où je veux utiliser la bibliothèque pour y rechercher moi même un ouvrage qui peut m'intéresser sur un sujet. Dans ce cas, je ne concevrai pas qu'il n'y ait pas dans la bibliothèque elle-même, une indication des thèmes des ouvrages dans les rayons, une indication des noms des ouvrages que je puisse lire (sur la tranche, ou dans un index), me donnant la possibilité de trouver l'ouvrage, le prendre l'ouvrage et de le lire, etc. Ce que je veut dire par là, c'est que dans le sens premier de "bibliothèque", il y a aussi celui d'organisation et de structuration (le TLFi a cette définition : "Bâtiment, salle où sont déposées, rangées, cataloguées diverses collections de livres, périodiques et autres documents que le public peut, sous certaines conditions, consulter sur place ou emprunter."). Une bibliothèque municipale sans catalogue, ou moyen de recherche, ne permettant pas aux visiteurs de rechercher, prendre les ouvrages et de les lire ne serait pas une réelle bibliothèque, car elle ne fournirait pas le service attendu d'une bibliothèque. D'un point de vue sémantique, cela ne serait pas une bibliothèque.
Le fichier .h, c'est le catalogue, ou l'index de ma bibliothèque municipale, dans une bibliothèque où les noms des ouvrages sont lisibles sur la tranche (et où j'ai, en plus, avant de les lire, accès à une idée de ce qu'ils contiennent).
Dal
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
5 juin 2013 à 23:46
5 juin 2013 à 23:46
il ne me semble pas que le standard du C donne une définition de ce qu'est une "bibliothèque"
Et pour cause, une bibliothèque n'est pas propre au C ;-).
Sinon oui, je suis d'accord avec toi. Mais dans la pratique, la bibliothèque (d'ailleurs on parle même plutôt de librairie, à tort) désigne plutôt le fichier contenant le code. Et si on y adjoint le .h, cela forme le package.
Intéressant comme concept "bibliothèque utilisateur" ou "bibliothèque développeur". Mais cela laisse penser que le fichier contenant le code (bibliothèque) est différent entre les deux notions.
En tout cas, chapeau, tu devais être bon en dissertation ;-)
Et pour cause, une bibliothèque n'est pas propre au C ;-).
Sinon oui, je suis d'accord avec toi. Mais dans la pratique, la bibliothèque (d'ailleurs on parle même plutôt de librairie, à tort) désigne plutôt le fichier contenant le code. Et si on y adjoint le .h, cela forme le package.
Intéressant comme concept "bibliothèque utilisateur" ou "bibliothèque développeur". Mais cela laisse penser que le fichier contenant le code (bibliothèque) est différent entre les deux notions.
En tout cas, chapeau, tu devais être bon en dissertation ;-)
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
6 juin 2013 à 10:19
6 juin 2013 à 10:19
lol @ dissertation <:-D
Intéressant comme concept "bibliothèque utilisateur" ou "bibliothèque développeur". Mais cela laisse penser que le fichier contenant le code (bibliothèque) est différent entre les deux notions.
Oui, je crois qu'on peut dire que le code peut être différent.
La bibliothèque mise à disposition du développeur peut contenir la bibliothèque sous forme source, qu'il devra compiler lui même. Dans ce cas, le code source est bien sûr différent du code objet de la bibliothèque fournie à l'utilisateur (c'est le même programme, sous une autre forme).
Si elle est compilée, le .h sera fournit au développeur dans le package de la bibliothèque, mais la bibliothèque ainsi fournie peut être compilée pour une compilation avec liaison statique (avec gcc : libtruc.a ou avec d'autres compilateurs sous Windows .lib) ou pour compilation avec liaison dynamique (libtruc.so ou .dll sous Windows).
Alors, oui, à mon sens, le code est (peut être) différent entre les deux notions : dans sa forme (à commencer par le nommage du fichier, mais aussi son contenu binaire lui même, dont le nommage n'est qu'un indicateur) et dans son usage (liaison statique vs. liaison dynamique et création d'un programme faisant usage de la bibliothèque vs. usage d'un programme utilisant cette bibliothèque).
Dal
Intéressant comme concept "bibliothèque utilisateur" ou "bibliothèque développeur". Mais cela laisse penser que le fichier contenant le code (bibliothèque) est différent entre les deux notions.
Oui, je crois qu'on peut dire que le code peut être différent.
La bibliothèque mise à disposition du développeur peut contenir la bibliothèque sous forme source, qu'il devra compiler lui même. Dans ce cas, le code source est bien sûr différent du code objet de la bibliothèque fournie à l'utilisateur (c'est le même programme, sous une autre forme).
Si elle est compilée, le .h sera fournit au développeur dans le package de la bibliothèque, mais la bibliothèque ainsi fournie peut être compilée pour une compilation avec liaison statique (avec gcc : libtruc.a ou avec d'autres compilateurs sous Windows .lib) ou pour compilation avec liaison dynamique (libtruc.so ou .dll sous Windows).
Alors, oui, à mon sens, le code est (peut être) différent entre les deux notions : dans sa forme (à commencer par le nommage du fichier, mais aussi son contenu binaire lui même, dont le nommage n'est qu'un indicateur) et dans son usage (liaison statique vs. liaison dynamique et création d'un programme faisant usage de la bibliothèque vs. usage d'un programme utilisant cette bibliothèque).
Dal
3 juin 2013 à 11:17