Ich versuche, eine C++ - Anwendung (unter Linux) aus einem anderen Verzeichnis auszuführen. Die App soll einige Dateien in dem Verzeichnis lesen, in dem sie sich befindet. Starten Sie ein C++ - Programm aus einem anderen Verzeichnis (unter Linux)
/opt/app/proj/
Alle Dateien Nehmen wir an, die ausführbare Datei in
ist von der App sind im gleichen Verzeichnis zu lesen, wenn ich den Code aus diesem Verzeichnis ausführen, alles läuft gut. aber wenn ich in /home/user/File/ und führen Sie den Code/opt/app/proj/application
finden, dass die Dateien nicht !! in meinem C++ Code Ich habe so etwas wie das hinzugefügt:
string cwd(get_current_dir_name());
string path(argv[0]);
string CONFIG_FILE = "configuration.conf";
string FILETYPES = "extensions.txt";
int pos = path.find("./");
if(pos>=0){
path = cwd+path.substr(pos+1, path.length()-1);
}
pos = path.find_last_of("/");
path = path.substr(0,pos+1);
CONFIG_FILE = path + CONFIG_FILE;
FILETYPES = path + FILETYPES;
Es ist immer noch nicht funktioniert .. Benötigen Sie Hilfe bei ...
Was ist 'CONFIG_FILE'? Welche Variable verwendest du? Mehr Code mehr Deklarationen. – Blacktempel
Drucken Sie alle Pfade in Ihrer App und prüfen Sie, ob die Pfade, die Sie formulieren, korrekt sind. Verwenden Sie cout zum Drucken oder gdb zum Debuggen. – Ravi
Hallo CONFIG_FILE und FILETYPES sind nur zwei Strings, die Dateinamen definieren Ich habe gerade meine Frage bearbeitet. Entschuldigung für das Missverständnis – PhoenixBlue