logarfr
Messages postés23Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention30 juin 2004
-
29 juin 2004 à 12:09
logarfr
Messages postés23Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention30 juin 2004
-
30 juin 2004 à 08:15
Bonjour à tous!
Je cherche un moyen pour récupérer le répertoire d'un exécutable que je lance!
Je ne veux non pas le répertoire courant mais bien le répertoire de l'application elle même et ce pour du C ANSI pour Unix!
Si quelqu'un à une solution je le remercie d'avance de me répondre!
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 29 juin 2004 à 13:09
dans 'void main(int argc, char* argv[])'
argv[0] est un pointeur vers le nom de l'executable (son chemin d'acces complet).
a toi de faire une boucle en arriere pour enlever la fin de ce chemin d'acces et pouvoir recuperer le dossier de l'executable.
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 29 juin 2004 à 13:24
argv[0] donne le chemin d'acces complet du programme.
ex : argv[0] donne "/home/chepakoi/lenomduprog"
ce chemin d'acces ne depend pas de l'endroit depuis lequel tu lances le programme !!!! a toi ensuite de traiter la chaine pour recuperer "/home/chepakoi"
fredcl
Messages postés547Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention 7 octobre 20071 29 juin 2004 à 14:54
Sous unix argv[0] ne donne pas obligatoirement le chemin complet.
Si vous cliquez sur l'icône du programme sous KDE pour le lancer
argv[0] contiendras le chemin complet. (pour gnome ou autre gestionaire, je ne sait pas faite comme moi, faite le test)
Mais si le programme est installé par exemple dans /usr/bin et que vous lancez le programme depuis un "lien" (je suis pas sur du terme exact) ou depuis une console argv[0] est égal au nom du programme uniquement.
si vous lancer le programme depuis une console en étant dans le répertoire di logiciel en tapant ./nom_du_programme argv[0]seras égal à ./nom_du_programme .
Voila pour ces petites précisions, actuellement je cherche aussi à savoir si il existe une méthode sûre et efficace pour avoir l'emplacement d'un programme, mais je ne suis pas certain que cela existe!
logarfr
Messages postés23Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention30 juin 2004 29 juin 2004 à 15:50
exemple :
"/rep1/rep2/rep3/appli"
si je lance l'appli à partir de "/rep1/rep2" en faisant "rep3/appli", le répertoire courant est "/rep1/rep2" et non "/rep1/rep2/rep3" qui est le répertoire de l'appli
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 29 juin 2004 à 20:25
samki > pour info, la current directory n'est pas obligatoirement le dossier de l'executable, elle peut etre modifiee avant le lancement et aussi a l'execution.
logarfr
Messages postés23Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention30 juin 2004 30 juin 2004 à 08:15
Bon j'ai pas trouvé comment faire mais j'ai une petite bidouille. en fait dans le prog pour atteindre les fichiers j'utilise ".". Pour lancer le prog j'utilise un shell qui se positionne directement dans le dossier de l'exécutable. Ex :
#!/bin/sh
cd /rep1/rep2/rep3/
appli
Merci @ tout ceux qui ont cherché une solution et aux auttres aussi @++