Rename-Befehl und dessen Rückgabewert



  • Hiho,

    mit dem rename-Befehl bzw. dessen Rückgabewert komme ich nciht ganz klar.

    Ich nutze folgendes:

    int ergebnis=::rename(oldpath,newpath);
    

    Return Value
    Each of these functions returns 0 if it is successful. On an error, the function returns a nonzero value and sets errno to one of the following values:

    EACCES
    File or directory specified by newname already exists or could not be created (invalid path); or oldname is a directory and newname specifies a different path.
    ENOENT
    File or path specified by oldname not found.
    EINVAL
    Name contains invalid characters

    ⚠ Danger: ANFÄNGER ^^ ⚠
    Wie ermittel ich denn den Rückgabewert nun richtig? Rückgabe ist ein Integer.
    Was ist bitte errno? Die Fehlernummer, die mir GetLastError gibt?

    Wenn mein int null ergibt ist ja alles OK, aber wie unterscheide ich
    jetzt die Fehlerarten richtig? Z.B. habe ich hier eine Datei versucht
    umzunennen. Ging aber nicht, da der Dateiname für Windows dann zu lang gewesen
    wäre. GetLastError gibt mir Code 3 zurück (ERROR_PATH_NOT_FOUND).

    Was denn nun? Pfad zu lang oder Pfad nicht umbenennbar? Gibts da denn keine
    Abstufungen für?

    Liege ich sonst mit meiner groben Interpretation von den Fehlern richtig? 😃



  • errno ist eine Variable im global name space, ist also der Rückgabewert von rename != 0 so kannst Du über diese Variable den Fehler spezifizieren.

    Gruß Matthias


Anmelden zum Antworten