1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182
|
.\" 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 <unistd.h>
.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).
|