Wie öffnet man eine Datei mit relativen Pfad unter Linux?

Ich habe ein Programm öffnet eine Datei mit einem relativen Pfad (z.B. '..').

Nun das problem ist, wenn ich führen Sie das Programm aus einem anderen Verzeichnis, der relative Pfad ist nicht in Bezug auf das Programm, sondern relativ zum Arbeitsverzeichnis. So, wenn ich starten Sie das Programm mit '/Pfad/zum/Programm/myprog' es schlägt fehl, um die Datei zu suchen.

Gibt es eine Möglichkeit, das Programm auszuführen, das unabhängig von der Arbeits-Verzeichnis? Id est, als Wenn die Arbeits-Verzeichnis das Verzeichnis, wo das Programm liegt? Oder bin ich einfach nur zu denken in einer viel zu komplizierten Weg und es gibt einen viel einfacheren Weg, der zum verweisen auf eine Datei, die Lage ist nur bekannt durch Ihren Pfad relativ zum Pfad der Datei des Programms?

  • mögliche Duplikate von Verzeichnis der ausgeführten Programm unter Linux?
  • Dies sollte erreichbar sein jedoch, sind Sie sicher, dass Sie das wollen ? Auf Linux, jeder Dateityp hat seine eigene Verzeichnisse : Konfiguration in der Regel gehen Sie zu /etc/ oder ` ~/.my_program, images and documentations to /usr/share`, und so weiter. Auch, die meisten Nutzer werden erwarten, dass Ihr Programm im aktuellen Verzeichnis.
  • Siehe auch dreamincode.net/forums/topic/98402-directory-of-running-program
  • Ich verstehe nicht, warum es ein Duplikat ist. Vielleicht war die Frage nicht klar genug. Mein Programm ist immer in './Release/bin'. Der code steht in der". /tools/etwas". Da ich manchmal bin in das tools-Verzeichnis und manchmal in das root-Verzeichnis, kann das Programm nicht ausgeführt, wenn ich den relativen Pfad in das Programm.
  • Sobald Sie das Programm auf den absoluten Pfad, ändern das aktuelle Verzeichnis ist trivial (chdir) also, was Sie Fragen, ist im Grunde gleich: "Wie bekomme ich den absoluten Pfad meines executable ?".
  • Ich hatte nicht gedacht, dass. Sie haben Recht: von diesem Punkt ist es trivial.

InformationsquelleAutor Burkhard | 2010-10-21
Schreibe einen Kommentar