[gull] changer LD_LIBRARY_PATH en cours d'execution

Vuko Brigljevic Vuko.Brigljevic at cern.ch
Fri Oct 24 17:19:02 CEST 2003


Marc SCHAEFER wrote:
> 
> On Fri, Oct 24, 2003 at 10:41:32AM +0000, Vuko Brigljevic wrote:
> 
> [ partie 1]
> > tourner. La requete contient l'information sur la librairie
> > a charger et ou la trouver et je dois donc pouvoir
> > fournir cette information de facon dynamique en cours
> > d'execution.
> 
> [ partie 2 ]
> > > Si c'est vraiment nécessaire, pourquoi ne pas simpleent donner le
> > > chemin complet de la bibliothèque à dlopen() ?
> >
> > La ca devient plus compliquer (et long) a expliquer mais
> > ca ne va pas vraiment non plus dans mon cas.
> 
> Ces deux parties sont contradictoires.

Oui, pardon pour la confusion. Elles sont effectivement 
contradictoire si par "donner le chemin complet de la 
librairie" on entend l'ecrire en dur ("hard coded") dans
le code, puisque comme je l'ai indique je ne le connais
ni au moment du developpement ni au moment du demarrage du
programme. Je pourrais neanmoins dans le code chercher la
librairie en question dans le path en utilisant la variable 
neanmoins le mettre comme variable a definir en cours
d'execution en cherchant la librairie dans le sentier definit
dynamiquement, soit en "pseudo-code":

libName  = getLibNameFromRequest();
loadPath = getLoadPathFromRequest();

/* chercher la librairie dans le sentier defini   */
fullLibPath = searchLibInPath(libName,loadPath);

dlopen(fullLibPath);


Ce serait tout a fait faisable, et probablement
pas si difficile a ecrire, mais je ne peux pas me 
permettre de le faire dans mon cas, notamment car
je ne peux modifier la partie du code ou se trouve
reellement l'appel a dlopen:

Si j'ai mal compris ou se trouvait la contradiction,
je demande pardon pour la generation de bruit inutile ;)

Vuko



More information about the gull mailing list