_stat auf Netzwerklaufwerk und relativem Pfad



  • Hallo,

    ist Euch vielleicht irgendwas bekannt, dass _stat auf Netzwerklaufwerken mit relativem Pfad nicht ordentlich funktioniert?

    Ich habe beobachtet, dass wenn man etwas macht, wie

    _chdir("\\\\ComputerName\\Directory\\");
    struct _stat st;
    if (_stat("pfad\\datei.ext", &st) != 0)
    {
        errno_t err;
        _get_errno( &err );
    }
    

    es nicht zuverlässig funktioniert.
    err ist danach ENOENT, obwohl die Datei sicher existiert.
    Wenn ich im Fehlerfall nochmal _stat Aufrufe, dann bekomme ich keinen Fehler zurück.

    Kann mir jemand dazu etwas sagen?


  • Mod

    Warum baust Du nicht einfach den absoluten Pfad zusammen und prüfst es dann... dann hast Du garantiert keine Probleme?



  • Ja mach ich jetzt auch. Aber komisch ist es trotzdem.
    Dachte, dass hier vielleicht jemand schon ähnliche Erfahrung gemacht hat oder vielleicht sogar einen Grund kennt.


  • Mod

    Wird chdir überhaupt ohne Fehler ausgeführt. Du prüfst ja nichts!



  • Kommando zurück!
    Es war doch tatsächlich eine Threading-Geschichte. Da hatte sich doch tatsächlich ein nicht gemutextet chdir eingeschlichen.

    _stat funktioniert also hervorragend.

    Entschuldigt den Wind...


  • Mod

    Elgerton schrieb:

    Kommando zurück!
    Es war doch tatsächlich eine Threading-Geschichte. Da hatte sich doch tatsächlich ein nicht gemutextet chdir eingeschlichen.

    _stat funktioniert also hervorragend.

    Entschuldigt den Wind...

    _chdir über einen Mutex absichern ist in meinen Augen grauenvoll...
    Warum eine CRT Funktion benutzen, die man durch eine direkte Pfadangabe umehen kann. Zudem dann noch das Ganze über einen Mutex absichern und damit andere Threads ausbremsen.... 😮


Anmelden zum Antworten