.\" Hey Emacs! This file is -*- nroff -*- source. .\" .\" This manpage is Copyright (C) 1992 Drew Eckhardt; .\" 1993 Michael Haardt; .\" 1993,1995 Ian Jackson. .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" .\" Modified Sat Jul 24 00:35:52 1993 by Rik Faith (faith@cs.unc.edu) .\" German Translation Tue Mar 29 20:25:00 1996 Elmar Jansen (ej@pumuckel.gun.de) .\" Modified Mon Jun 10 13:32:10 1996 by Martin Schulze (joey@linux.de) .\" .TH RENAME 2 "29. März 1996" "Linux" "Systemaufrufe" .SH BEZEICHNUNG rename \- ändert den Namen oder die Lage einer Datei .SH ÜBERSICHT .B #include .sp .BI "int rename(const char *" oldpath ", const char *" newpath ); .SH BESCHREIBUNG .B rename benennt eine Datei um, wobei sie gegebenenfalls in ein anderes Verzeichnis verlegt werden kann. Andere Hardlinks der Datei (angelegt mit .BR link ) bleiben davon unberührt. Wenn .I newpath schon existiert wird er überschrieben (für Ausnahmen siehe Abschnitt FEHLER), so dass kein anderer Prozess, der versucht .I newpath zu erreichen, diesen nicht findet. Wenn .I newpath schon existiert aber das Umbenennen aus irgendeinem Grund fehlschlägt, oder das System crasht, garantiert .B rename das .I newpath vorhanden erhalten bleibt. Beim Ändern gibt es ein Zeitfenster zu dem sowohl .I oldpath als auch .I newpath auf die Datei zeigen die umbenannt werden soll. Wenn .I oldpath auf einen symbolischen Link zeigt wird der Link umbenannt; wenn .I newpath auf einen symbolischen Link zeigt wird der Link überschrieben. .SH "RÜCKGABEWERT" Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird \-1 zurückgegeben und .I errno entsprechend gesetzt. .SH FEHLER .TP 0.8i .B EISDIR .I newpath ist ein vorhandenes Directory aber .I oldpath ist kein vorhandenes Directory. .TP .B EXDEV .IR oldpath " und " newpath befinden sich nicht im gleichen Filesystem. .TP .B ENOTEMPTY .IR newpath ist ein Directory das nicht leer ist. .TP .B EBUSY .I newpath ist ein vorhandenes Directory und ist aktuelles Directory oder Root Directory eines Prozesses. .TP .B EINVAL Es wurde versucht ein Directory als Subdiretory von sich selbst zu erzeugen. .TP .B EMLINK .I oldpath hat schon die maximale Anzahl Links, oder es ist ein Directory und das Directory welches .I newpath enthält hat schon die maximale Anzahl Links. .TP .B ENOTDIR Ein Teil des Directory .IR oldpath " oder " newpath ist in Wirklichkeit kein Directory. .TP .B EFAULT .IR oldpath " oder " newpath " zeigt außerhalb des Benutzer-Adressraums." .TP .B EACCES Die effektive uid des Prozesses hat kein Schreibrecht in dem Directory in dem .IR oldpath " oder " newpath angelegt werden soll, oder eines der Directory's .IR oldpath " oder " newpath verbietet das Suchen (execute permission fehlt), oder did not allow search (execute) permission, or .I oldpath ist ein Directory und hat keine Schreibberechtigung (wird zum Ändern des .B .. benötigt). .TP .B EPERM Das Directory welches .I 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 .IR pathname enthält erlaubt nicht das Umbenenen einer Datei. .TP .B ENAMETOOLONG .IR oldpath " oder " newpath " sind zu lang." .TP .B ENOENT Eine Komponente des Directory's .I oldpath " oder " newpath existiert nicht oder ist ein unsicherer symbolischer Link. .TP .B ENOMEM Es war nicht genügend Kernel-Memory verfügbar. .TP .B EROFS Die Datei ist in einem nur lesbaren Dateisystem. .TP .B ELOOP .IR oldpath " oder " newpath beinhalten einen Verweis auf einen kreisenden symbolischen Link, beziehungsweise auf einen symbolischen Link der auf sich selbst verweist. .TP .B ENOSPC Die Gerätedatei die die Datei enthält hat keinen Platz für einen neuen Directoryeintrag. .SH "KONFORM ZU" POSIX, BSD 4.3, ANSI C .SH BUGS Momentan (Linux 0.99pl7) erlauben die meisten Dateisysteme außer Minix kein Überschreiben. Sie erhalten beim Versuch .BR 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 .IR link (2) für ein ähnliches Problem. .SH "SIEHE AUCH" .BR link (2), .BR unlink (2), .BR symlink (2), .BR mv (1), .BR link (8).