Question

Je souhaite ouvrir un certain nombre de fichiers (configs log4cxx, autres journaux, etc.) par rapport à l'emplacement du binaire.

Malheureusement, les deux getwd() et getcwd() me donne le répertoire, à partir duquel j'essaie de faire fonctionner le binaire sur le chemin connu, au lieu de me donner le chemin où se trouve le binaire (et où se trouve les données).

Comment obtenir le chemin de l'application pour l'utiliser avec chdir()? Toutes les méthodes en plus argv[0] Et sans essayer d'analyser / proc / $ pid / (ce n'est pas assez portable)?

Était-ce utile?

La solution

C'est exactement le genre de chose autoconf Des vies pour et soutenir ces répertoires standard sont à peu près obligatoires si vous voulez jamais que quelqu'un d'autre que les programmeurs qui ont écrit votre logiciel l'utilisent. Une fois configuré correctement, déboguer de votre répertoire d'origine, tout ce que vous avez à faire est de passer un autre --prefix= valeur de configure.

Autres conseils

Parcourez le chemin et trouvez un exécutable du même nom que Argv [0]?

Cependant, il serait probablement préférable de fournir à l'utilisateur un moyen de configurer où se trouvent les données. Un fichier Env var ou Config ou un paramètre CL ou quelque chose. C'est très frustrant de traiter avec des programmes qui essaient d'être utiles mais qui sont en fait simplement stupides.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top