Provided by: manpages-de-dev_0.10-1_all bug

BEZEICHNUNG

       rename - ändert den Namen oder die Lage einer Datei

       Diese   Handbuchseite   ist   eventuell   veraltet.   Im   Zweifelsfall   ziehen  Sie  die
       englischsprachige Handbuchseite zu Rate, indem Sie

              man -LC 2 rename

       eingeben.

Ü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).