dirent.h "Funktioniert nicht mehr"



  • Hallo.
    Hab da ein kleines Problem.
    Ich versuche mit dirent alle Dateien in einem Ordner auszugeben.
    Leider kommt dann immer ".EXE funktioniert nicht mehr", wenn ich die Dateien aus dem Ordner lesen will.
    Der Debugger sagt mir "Segmentation fault".
    Das einzige was eine Schutzverletzung auslösen könnte, wäre opendir (). Denn ich überprüfe ob das Verzeichnis geöffnet werden konnte und selbst wenn ich ein ungültiges Verzeichnis angebe, wird eine Schutzverletzung ausgelöst.
    Ich hoffe jmd. kan mir helfen.

    char* dir;
    cin >> dir;
    DIR* pDir;
    struct dirent* entry;
    pDir = opendir(dir);
    if (pDir)
    {
        while (entry = readdir (pDir))
        {
            if (strcmp (entry-> d_name, ".") != 0 && strcmp (entry-> d_name, "..") != 0)
                std::cout << entry-> d_name << "\n";
        }
        closedir (pDir);
    }
    else
        std::cout << "No such directory\n";
    

    Danke



  • In Zeile 2 gibst Du den Verzeichnisnamen ein. Was denkst Du, wo der hingeschrieben wird?



  • Sorry für so viel Dummheit.
    Ich hab versucht mit cin die Zeichen in ein char* zu laden.
    Funktioniert jetzt, musste halt nur das entfernen. Denn die Konsoleneingabe war sowieso nur Test.

    Edit: Du warst wohl schneller als ich 😃


Anmelden zum Antworten