Provided by: manpages-de-dev_0.5-4.1ubuntu1_all bug

BEZEICHNUNG

       rename - ändert den Namen oder die Lage einer Datei

ÜBERSICHT

       #include <unistd.h>

       int rename(const char *oldpath, const char *newpath);

BESCHREIBUNG

       rename  benennt  eine Datei um, wobei sie gegebenenfalls in ein anderes
       Verzeichnis verlegt werden kann.

       Andere Hardlinks der Datei (angelegt mit link) bleiben davon unberührt.

       Wenn newpath schon existiert wird er überschrieben (für Ausnahmen siehe
       Abschnitt FEHLER), so dass kein anderer Prozess, der  versucht  newpath
       zu erreichen, diesen nicht findet.

       Wenn  newpath schon existiert aber das Umbenennen aus irgendeinem Grund
       fehlschlägt, oder das System  crasht,  garantiert  rename  das  newpath
       vorhanden erhalten bleibt.

       Beim  Ändern  gibt  es  ein  Zeitfenster zu dem sowohl oldpath als auch
       newpath auf die Datei zeigen die umbenannt werden soll.

       Wenn oldpath auf einen symbolischen Link zeigt wird der Link umbenannt;
       wenn   newpath   auf  einen  symbolischen  Link  zeigt  wird  der  Link
       überschrieben.

RÜCKGABEWERT

       Bei  Erfolg  wird  Null  zurückgegeben.   Bei  einem  Fehler  wird   -1
       zurückgegeben und errno entsprechend gesetzt.

FEHLER

       EISDIR  newpath  ist  ein  vorhandenes  Directory aber oldpath ist kein
               vorhandenes Directory.

       EXDEV   oldpath und newpath befinden sich nicht im gleichen Filesystem.

       ENOTEMPTY
               newpath ist ein Directory das nicht leer ist.

       EBUSY   newpath   ist  ein  vorhandenes  Directory  und  ist  aktuelles
               Directory oder Root Directory eines Prozesses.

       EINVAL  Es wurde versucht ein Directory als Subdiretory von sich selbst
               zu erzeugen.

       EMLINK  oldpath  hat  schon  die maximale Anzahl Links, oder es ist ein
               Directory und das Directory welches newpath enthält  hat  schon
               die maximale Anzahl Links.

       ENOTDIR Ein Teil des Directory oldpath oder newpath ist in Wirklichkeit
               kein Directory.

       EFAULT  oldpath oder newpath zeigt außerhalb des  Benutzer-Adressraums.

       EACCES  Die  effektive  uid  des Prozesses hat kein Schreibrecht in dem
               Directory in dem oldpath oder  newpath  angelegt  werden  soll,
               oder  eines  der Directory’s oldpath oder newpath verbietet das
               Suchen (execute permission fehlt), oder did  not  allow  search
               (execute)  permission,  or  oldpath  ist  ein Directory und hat
               keine Schreibberechtigung (wird zum Ändern des ..  benötigt).

       EPERM   Das Directory  welches  oldpath  enthält  hat  das  Sticky  Bit
               gesetzt und die effektive Userid des Prozesses ist ungleich der
               Userid  der  Datei  die  gelöscht  werden  soll  ,   oder   das
               Dateisystem   welches   pathname   enthält  erlaubt  nicht  das
               Umbenenen einer Datei.

       ENAMETOOLONG
               oldpath oder newpath sind zu lang.

       ENOENT  Eine  Komponente  des  Directory’s   oldpath    oder    newpath
               existiert nicht oder ist ein unsicherer symbolischer Link.

       ENOMEM  Es war nicht genügend Kernel-Memory verfügbar.

       EROFS   Die Datei ist in einem nur lesbaren Dateisystem.

       ELOOP   oldpath   oder  newpath  beinhalten  einen  Verweis  auf  einen
               kreisenden  symbolischen  Link,   beziehungsweise   auf   einen
               symbolischen Link der auf sich selbst verweist.

       ENOSPC  Die  Gerätedatei  die  die  Datei  enthält hat keinen Platz für
               einen neuen Directoryeintrag.

KONFORM ZU

       POSIX, BSD 4.3, ANSI C

BUGS

       Momentan (Linux 0.99pl7) erlauben die meisten Dateisysteme außer  Minix
       kein Überschreiben.  Sie erhalten beim Versuch EEXIST.

       Auf  NFS  Dateisystemen kann bei einer fehlgeschlagenen Operation nicht
       davon ausgegangen werden das die Datei nicht umbenannt wurde.  Wenn der
       Server  die  Datei umbenennt und dann crasht, gibt der RPC einen Fehler
       zurück.  Die Applikation muss dies berücksichtigen.  Siehe link(2)  für
       ein ähnliches Problem.

SIEHE AUCH

       link(2), unlink(2), symlink(2), mv(1), link(8).