Konsolenprogramm: Aktuelles Verzeichnis herausfinden



  • Hallo zusammen,

    ich schreibe gerade an einem Konsolenprogramm, dass als Parameter einen Dateinamen bekommt. Ganz Linuxkonform muss dieser natürlich nicht zwingend absolut sein, sondern kann auch ab dem aktuellen verzeichnis gelten. Wie bekomme ich denn nun in meinem Programm heraus, in welchem Verzeichnis dich der User gerade befindet?

    Danke für Eine Antwort,

    Stefan



  • Ist zwar keine Standard-C++-Frage, aber wenn Du unter Linux arbeitest mit man: getcwd(3)

    edit: Typo...



  • Wenn ich mich nicht irre, kannst du das auch mit

    DWORD GetCurrentDirectory(size, buffer);
    

    machen.



  • godlikebot: Das ist wohl WinAPI und somit nicht auf Linux anwendbar.



  • Oh, verdammt! Hab ich überlesen...



  • system("dir");
    

    windows

    system("pwd");
    

    linux

    mfg



  • Hi,

    wie schauts denn mit

    int main(argc,*argv[])
    {
          //argv[0] == 'der Aktuelle Pfad'
          std::cout << argv[0];
    
          return 0;
    }
    

    Ist super Standard C++

    grüße, Con@n



  • wie rufst du eine exe/run? aus der konsole heraus auf, wenn du dich im selben verzeichnis wie die exe/run befindest: nur mit dem dateinamen. folglich wird das erste argument nur der dateiname sein.

    mfg



  • wie wärs mit: nmans version oder noch viel besser: man braucht zum öffnen von dateien wohl kaum den absoluten pfad. wär mir zumindest neu.



  • Con@n: Erstens wird damit nicht das aktuelle Arbeitsverzeichnis ausgegeben sondern bestenfalls (und selbst das ist nicht gewährleistet) der Pfad der ausführbaren Datei.

    terraner: Ich will nicht unhöflich erscheinen, aber Deine Lösung ist Mist. 🙂

    Wir haben außerdem schon eine funktionierende Lösung für *nix und Win gepostet. 🙄



  • nman schrieb:

    terraner: Ich will nicht unhöflich erscheinen, aber Deine Lösung ist Mist. 🙂

    Wir haben außerdem schon eine funktionierende Lösung für unix/linux und Win gepostet. 🙄

    hey, wat?! wo bin ich? oh, na egal. aber es ist kürzer. außerdem liebe ich die bash. die windows-lösung ist echt nicht optimal, weil sie auch noch alle im verzeichnis vorhandenen dateien ausgibt.

    mfg



  • terraner schrieb:

    aber es ist kürzer. außerdem liebe ich die bash.

    Kürzer? So oder so knapp eine Zeile...
    Ich mag Nutella auch, aber ich würde damit nicht meine Tapeten festkleben
    - auch wenn das eine zeitlang sicher ganz gut halten würde...

    die windows-lösung ist echt nicht optimal, weil sie auch noch alle im verzeichnis vorhandenen dateien ausgibt.

    Stimmt - die ist noch größerer Müll als das der Einsatz von std::system() für sowas prinizpiell schon ist. 👎


Anmelden zum Antworten