Pfad zur Binary
-
Hallo,
bin grad etwas planlos. Gibt es eine Möglichkeit den echten Pfad zu einer aufgerufenen Binary zu finden ? Also auch wenn Verlinkungen etc. im Spiel sind.
Ich habe eine Template-Datei die ich gerne einfach irgendwo im Programmordner ablegen würde. Der Benutzer soll dann, sobald er die Option "-t" übergibt, im aktuellen Verzeichnis diese Template-Datei erhalten. (Bei einer Konfigdatei wäre das ja ein ähnliches Problem)
Würde die Datei auch ungern fest in den Code eintragen. Als ASCII-File ist sie viel leichter anzupassen
Nun weiß ich aber im Programm nicht, wo der Programmordner liegt. Ich möchte jetzt auch keine Umgebungsvariable verwenden oder den Pfad fest in den Code eintragen.
In Python war das immer recht einfach.
APPDIR = os.path.dirname(os.path.abspath(__file__))
Danke
-
Inwiefern reicht dir denn das erste Kommandozeilenargument(mit dem relativen Pfad) nicht für das, was du vor hast?
-
Mit Standard C++ nicht möglich. Aber wieso übergibst du nicht auch gleich den Pfad zu diesem Templatefile?
Mit der WinAPI gibt es unterschiedliche Möglichkeiten:
GetCurrentDirectory
- Für das Arbeitsverzeichnis.
GetModuleHandle
undGetModuleFileName
- Für den Pfad zur ausgeführten EXE.Grüssli
-
SeppJ schrieb:
Inwiefern reicht dir denn das erste Kommandozeilenargument(mit dem relativen Pfad) nicht für das, was du vor hast?
hmm müsst ich mal testen, Links kann ich mit realpath oder sowas sicher auflösen ?
Dravere schrieb:
Mit Standard C++ nicht möglich. Aber wieso übergibst du nicht auch gleich den Pfad zu diesem Templatefile?
Mit der WinAPI gibt es unterschiedliche Möglichkeiten:
GetCurrentDirectory
- Für das Arbeitsverzeichnis.
GetModuleHandle
undGetModuleFileName
- Für den Pfad zur ausgeführten EXE.Grüssli
Gibts es für GetModuleFileName auch was ähnliches unter Linux ?
-
Ahh, ich sehe, wie du Probleme mit Links bekommst. Dann funktioniert mein Vorschlag mit dem Kommandozeilenargument tatsächlich nicht.
ahnungsloser schrieb:
Gibts es für GetModuleFileName auch was ähnliches unter Linux ?
Ja, man kann allerlei tolle Sachen mit den Standard-Posix Headern machen. Unter anderem gibt es auch einen Header zur Arbeit mit Verzeichnissen. Da ich diesen aber selber noch nicht benutzt habe, will ich hier nicht rumspekulieren. Ich empfehle dir, mal die Experten im Linux-Unterforum danach zu befragen.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-