[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux] Re: [Fwd: dev C++ path]



Hello !

On Sun, Jan 06, 2002 at 08:00:21PM +0100, Silvestre Thomas wrote:
[.../...] 
> je suis en train d'écrire un programme, et celui-ci doit charger des
> images qui se trouvent dans le même répertoire que l'exécutable.
> 
> Si je le lance manuellement dans une console, pas de problèmes, par
> contre si je clique dessus pour l'exécuter dans Konqueror (par ex.), là
> les images ne se chargent pas. Ce qui est logique car c'est
> /brol/monbinaire qui est exécuté et non ./monbinaire.
> 
> Ma question est simple : "Comment fait-on pour récupérer le chemin
> complet de l'exécutable?"

IIRC, cela est impossible à faire sous UN*X. Il existe toutefois un
certain nombre de solutions qui peuvent être combinées :

- Hardcoder le chemin d'installation dans le binaire ;

- Examiner argv [0], et essayer d'en déduire l'emplacement actuel du
  package ;

- Demander à l'utilisateur de positionner une variable d'environnement.

La solution « idéale » serait de tester successivement les trois
solutions dans l'ordre : variable d'environnement, chemin d'installation
hardcodé, et enfin argv [0] en s'arrêtant dès que le chemin est trouvé.

Cette complexité est due à la flexibilité offerte par les liens
(hard / soft), et l'appel système exec ().

> Merci d'avance...
[.../...]

Cu,
Dash.

-- 
[It is] best to confuse only one issue at a time.
                -- Kernighan & Ritchie
-- 
Damien Diederen
dash@linuxbe.org
http://users.swing.be/diederen/

[ Soyez précis dans vos sujets svp afin de déterminer directement  ]
[ le type de demande...                                            ]
[ Pour vous (dés)inscrire, aller sur http://unixtech.be/ml.php     ]
[ Archives de la mailing list: http://archives.unixtech.be/linux/  ]
[ http://unixtech.be              Contact: listmaster@unixtech.be  ]