fopen ... was mach ich falsch ?? [eigentlich erledigt]



  • FILE* XLS = fopen(FileName.c_str(),"w");
    		unsigned int test = GetLastError();
    		if (test != 0) return false;
    

    test liefert mir permanent 138 zurück, can't write to existing file

    ich möchte die datei explizit überschreiben und nicht bearbeiten!!!

    laut borland hilfe würde ich mit "w" aber existierende dateien überschrieben .... bei den binärdatei hat das auch supi geklappt .... auch wenns DORT unerwünscht war XD aber nu gehts net bei txt dateien

    _< trotz des fehlers kann ich die datei überschreiben ???
    hab beim debuggen vergessen den fehler mal testhalber auf 0 zu setzen um zu sehen wo er mir ne zugriffsverletzung entgegen würgt XD

    aber bissl spanisch kommt mir das schon vor



  • Die Implementierung von fopen wird intern sicherlich mehrere Funktionen der Systembibliothek verwenden, um ihr Ziel zu erreichen. Dabei wird der Fehlerstatus wohl nicht immer zurückgesetzt. Muss er auch nicht, denn der Rückgabewert von fopen zeigt an, ob ein Fehler vorliegt oder nicht. Nur wenn, sollte man den Fehlerstatus überhaupt überprufen.

    Was die Implementierung angeht, könnte sie doch (rein hypothetisch) so aussehen dass erst versucht wird, eine neue Datei zu erzeugen, wobei dieser Fehler erzeugt wird. Darauf wird reagiert und die Datei gelöscht bevor der Versuch wiederholt wird, der Fehlerstatus bleibt aber stehen.



  • jedenfalls hab ich die fehlerbehandlung auch geändert
    if (afile == NULL) {
    error = GetLastError();
    return false;
    }



  • GetLastError() liefert den status einiger winapi-funktionen zurück. ich glaube nicht, dass der in verbindung mit 'fopen' viel sinn macht.
    🙂



  • For Whom the Bell Tolls schrieb:

    GetLastError() liefert den status einiger winapi-funktionen zurück. ich glaube nicht, dass der in verbindung mit 'fopen' viel sinn macht.

    Darauf wollte ich ja hinaus - es bleibt halt der Status des letzten WinAPI-Befehls stehen, den die C-Runtime benutzt. Sinn machen kann das u.U. schon, aber man kann den Zusammenhang nicht genau erkennen 😉



  • LordJaxom schrieb:

    Sinn machen kann das u.U. schon, aber man kann den Zusammenhang nicht genau erkennen 😉

    naja, nach dem nächsten windoofs-update kann's schon nicht mehr gehen...
    🙂


Anmelden zum Antworten