y a deux façons d'utiliser les libs à la volée
soit tu la charges, tu exécutes 3-4 fonctions puis tu la décharges (libbegin, libcall and libend)
soit tu utilises libexec qui charge, exécute la fonction demandée et qui décharge la lib
1ère méthode > pas besoin de recharger la lib à chaque appel donc plus rapide si tu as beaucoup d'appels
2ème méthode > plus courte quand il n'y a qu'un seul appel
pour globals, je crois que c'est parce que les données sont à une adresse toujours près de l'écran

<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)
<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
et comment il fait pour deviner à la volée ? le kernel s'occupe de reloger avant l'exécution de ton programme, après il ne fait plus rien, donc il faut bien lui dire d'une façon ou d'une autre (tout en étant compatible avec l'API déjà existante) qu'il faut charger une lib

<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)
<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
oué, mais là genlib est chargée au lancement de ton programme et sera déchargée à la fin
donc pendant toute l'exécution de ton programme, la ram consommée sera taille(programme)+taille(genlib)
là, ça permet réduire à taille(programme) quand on n'a pas besoin des libs

<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)
<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
exemple, un shell qui s'apprête à lancer un programme
doors, qui est vieux, occupe en permanence taille(doors)+taille(ziplib)+taille(filelib)+taille(graphlib) même quand il lance un programme
s'il utilisait ces fonctions, il pourrait décharger ziplib, filelib et graphlib et n'utiliser que taille(doors) quand il lance un prog

<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)
<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
Uther Le 22/07/2005 à 10:57 En général, sous unix, 0 signifie que tout c'est bien passé, un autre nombre sert a donner le numéro d'erreur.
Sur TI je ne sais pas trop s'il peut être récupéré (sous PedroM peut-être)
PpHd Le 22/07/2005 à 11:58 C'est comme sur Unix. 0 ok, sinon c'est une erreur (avec le code d'erreur).
Surtout sous pedroM
Uther Le 22/07/2005 à 13:08 Si ca marche comme sous unix on peut récupérer la valeur de retour du dernier programme par la variable d'environement $?
Maintenant je ne sais pas si ca marche comme ca sous Pedrom, ni s'il y a un autre moyen de le récupérer sous AMS et PedroM
Link Le 01/09/2005 à 16:13 Hum... En fait, c'est le "Run-time dynamic linking", la même fonction que LoadLibrary()...
Une précision sur la dernière question: Si on charge une lib N fois, combien de fois faut-il la libérer ? une ou N fois? (chez MS, c'est N)

Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.
PpHd Le 02/09/2005 à 15:03 Je pensais le faire, mais j'ai abandonne devant la complexite de la chose (surtout que c'est pas si facile a faire).
Mais si tu me trouves une implantation rapide et efficace, je prends.
PpHd Le 03/09/2005 à 21:53 Juste pour rire,tu fais quoi dans le cas ou un programme utilisant une libraire A qui utilise une librarie C, et une librairie B qui utilise aussi la librarie C.
Et si la librarie C a des BSS uniques a chaque instance, tu l'as dans le cul, non ?
Link Le 03/09/2005 à 23:05 ce que tu peux faire, c'est peut-être faire cela selon un paramètre de la fonction de chargement...
et/ou interroger la librairie elle-même...

Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.