Mit c++ in ein Verzeichnis wechseln



  • Hallo zusammen..
    Ich habe ein mini Programm geschrieben das mir unter anderem ein paar Dateien anlegt. Am Ende des Programms möchte ich in das Verzeichnis wechseln in dem die neu erzeugten Dateien liegen. Aber irgendwie funktioniert das nicht so richtig. Folgendes habe ich probiert:

    system("cd /home/user/verzeichnis");
    

    Hat leider nicht geklappt. Dann habe ich mir ein kleines Script (script.sh) mit folgendem Inhalt geschrieben:

    #!/bin/bash
    cd /home/user/verzeichnis
    

    und es so aufgerufen:

    system("source script.sh");
    

    Leider auch hier kein Verzeihniswechsel. Kann mir da jemand einen Tipp geben?



  • Das was du versucht hast, kann nicht klappen, weil du nur ein Programm startest, das in ein Verzeichnis wechselt. Damit wechselt natürlich nicht dein Progamm mit. Stell dir vor, was passieren würde, wenn jeder Elternprozess immer im gleichen Ordner wie der Kinprozess laufen müsste.

    Um das Verzeichnis zu wechseln benutze folgendes:

    #include <unistd.h>
    
    int chdir(const char *path);
    


  • Vielen Dank für deine Antwort. Ich weiss nur ehrlichgesagt nicht genau, wie ich das jetzt umsetze. Wie muss ich denn den Pfad da angeben?



  • Wie jetzt 😮

    if (chdir("/home/user/verzeichnis") != 0) {
      printf("Konnte Verzeichnis nicht wechseln\n");
    }
    

    Gib mal im Shell

    man chdir
    

    ein.



  • Dummes Missverständniss meinerseits 😃
    Klappt wunderbar, danke.

    Bin schon etwas länger raus aus c++, deswegen der Fehler 🙂


Anmelden zum Antworten