relative Pfadangaben
-
Warum funktioniert der folgende Code nicht:
#include <iostream> #include <fstream> using namespace std; int main() { fstream oFile("~/hallo"); if(oFile.is_open()) { oFile << "hallo" << endl; oFile.close(); } else cout << "Datei konnte nicht geoeffnet werden" << endl; return 0; }
Wie kann ich sonst eine Datei in mein Homeverzeichnis schreiben, bzw. wie krieg ich es raus?
-
uh, Fehler schon gefunden
Trotzdem danke fürs reingucken
-
Wirklich lustig Troll, für dich meld ich mich sogar an.
Das Problem besteht weiterhin...
-
Ich weiß zwar ehrlich gesagt nicht ob das Overkill ist oder nicht, aber normalerweise enthält $HOME den Pfad des Home-Dirs, lies vielleicht mal "man getenv".
edit:
#include <cstdlib> #include <string> #include <iostream> int main(void) { std::string var; std::cout << "Umgebungsvariable: "; std::cin >> var; std::cout << "Wert: " << std::getenv(var.c_str()) << std::endl; }
[ Dieser Beitrag wurde am 14.05.2003 um 16:18 Uhr von nman editiert. ]
-
das zeichen '~' wird von der shell interpretiert.
sie ersetzt es durch den inhalt von $HOME.willst du das home dir des benutzers haben, dann:
#include <unistd.h> #include <pwd.h> ... struct passwd* p = getpwuid( getuid() ); printf( "homedir = %s\n", p->pw_dir );
schau dir mal pwd.h an da kannst du noch ein paar
andere sachen ueber den user herausfinden.
-
Danke, klappt ohne Probleme!