Home :: International :: Manuals :: Howto :: FAQ :: Man Pages :: Email Login

 
 

 

RENAME

Section: Systemaufrufe (2)
Updated: 29 März 1996
Index Return to Main Contents
 

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 daß kein anderer Prozes^ 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 muß dies berücksichtigen. Siehe link(2) für ein ähnliches Problem.  

SIEHE AUCH

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


 

Index

BEZEICHNUNG
ÜBERSICHT
BESCHREIBUNG
RÜCKGABEWERT
FEHLER
KONFORM ZU
BUGS
SIEHE AUCH

 
 
 
 
Google
  Web Linuxinfor   
 

Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account

Document on this page is part of "Linuxinfor Man Pages in HTML Format: man2". See Index Page for more info about Authorship and Copyright.

1999-2008 Linuxinfor.com. No rights reserved.