File: rename.2

package info (click to toggle)
manpages-es 1.55-4
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 7,472 kB
  • ctags: 6
  • sloc: sh: 1,349; makefile: 63
file content (200 lines) | stat: -rw-r--r-- 6,530 bytes parent folder | download | duplicates (4)
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
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
.\" 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>
.\" Modified Thu Jun  4 12:21:13 1998 by Andries Brouwer <aeb@cwi.nl>
.\" Translation revised April 27 1998 by Juan Piernas <piernas@dif.um.es>
.\" Translation revised August 17 1998 by Juan Piernas <piernas@ditec.um.es>
.\" Translation revised Wed Dec 30 1998 by Juan Piernas <piernas@ditec.um.es>
.\" Translation revised Tue Apr  6 1999 by Juan Piernas <piernas@ditec.um.es>
.\"
.TH RENAME 2 "4 Junio 1998" "Linux 2.0" "Manual del Programador de Linux"
.SH NOMBRE
rename \- cambia el nombre y/o posición de un fichero
.SH SINOPSIS
.B #include <stdio.h>
.sp
.BI "int rename(const char *" oldpath ", const char *" newpath );
.SH DESCRIPCIÓN
.B rename
renombre un fichero, moviéndolo entre directorios si así se requiere.

Cualquier otro enlace físico al fichero (como los creados usando
.BR link (2))
no se ve afectado.

Si
.I newpath
ya existe será automáticamente reemplazado (sujeto a unas pocas condiciones
- ver ERRORES más adelante) de tal manera que no haya posibilidad de que
otro proceso intente acceder a
.I newpath
y no lo encuentre.

Si
.I newpath
existe pero la operación falla por alguna razón, 
.B rename
garantiza dejar una instacia de
.I newpath
en el lugar.

Sin embargo, durante una sobreescritura habrá probablemente un intervalo en
que tanto
.I oldpath
y
.I newpath
se refieran al fichero que se está renombrando.

Si
.I oldpath
se refiere a un enlace simbólico, el enlace será renombrado; si
.I newpath
se refiere a un enlace simbólico, el enlace será sobreescrito.

.SH "VALOR DEVUELTO"
En caso de éxito se devuelve 0. En caso de error se devuelve \-1 y se asigna
a
.I errno
un valor apropiado.
.SH ERRORES
.TP
.B EISDIR
.I newpath
es un directorio que ya existe pero
.I oldpath
no es un directorio.
.TP
.B EXDEV
.IR oldpath " y " newpath
no están en el mismo sistema de ficheros.
.TP
.B ENOTEMPTY " o " EEXIST
.IR newpath
es un directorio no vacío, es decir, contiene entradas distintas a "." y
"..".
.TP
.B EBUSY
.B rename
falla porque
.IR oldpath " o " newpath
es un directorio que está siendo usado por algún proceso (tal vez como
directorio de trabajo actual, como directorio raíz o porque lo ha abierto
para lectura) o está siendo usado por el sistema (por ejemplo, como punto de
montaje), si bien el sistema considera esto un error.
(Dése cuenta que no es necesario devolver EBUSY en tales casos - de todos
modos, no hay nada incorrecto en cambiar de nombre - pero se permite
devolver EBUSY si el sistema no puede manejar tales
situaciones).
.TP
.B EINVAL
La nueva ruta contiene un prefijo de ruta de la antigua o, de forma más
general, se ha intentado convertir un directorio en subdirectorio de si mismo.
.TP
.B EMLINK
El número de enlaces a
.I oldpath
ya ha alcanzado el máximo permitido, o es un directorio y el directorio que
contiene a
.I newpath
ha alcanzado el número máximo de enlaces.
.TP
.B ENOTDIR
Un componente usado como directorio en
.IR oldpath " o " newpath
no es, de hecho, un directorio.
O
.I oldpath
es un directorio y
.I newpath
existe pero no es un directorio.
.TP
.B EFAULT
.IR oldpath " o " newpath " apunta fuera de su espacio accesible de direcciones."
.TP
.B EACCES
No se permite el acceso de escritura al directorio que contiene
.IR oldpath " o " newpath
para el identificador de usuario efectivo del proceso, o uno de los
directorios en
.IR oldpath " o " newpath
no posee permiso de búsqueda (ejecución) para el proceso, o
.I oldpath
es un directorio y no posee permiso de escritura (necesario para actualizar
la entrada
.BR .. ).
.TP
.BR EPERM " o " EACCES
El directorio que contiene
.I oldpath
tiene activo el bit pegajoso (sticky bit) y el identificador de usuario
efectivo del proceso no es ni el del root, ni el identificador de usuario
del fichero a borrar ni del directorio que lo contiene, o
.I newpath
es un fichero existente y el directorio que lo contiene tiene activo el bit
pegajoso (sticky bit) y el idenficador de usuario efectivo del proceso no es
ni el del root, ni el identificador de usuario del fichero a borrar ni del
directorio que lo contiene, 
o el sistema de ficheros que contiene
.IR pathname
no soporta el tipo de renombramiento solicitado.
.TP
.B ENAMETOOLONG
.IR oldpath " o " newpath " son demasiado largos."
.TP
.B ENOENT
Un directorio componente de
.I oldpath " o " newpath
no existe o es un enlace simbólico colgante.
.TP
.B ENOMEM
No había suficiente memoria disponible en el núcleo.
.TP
.B EROFS
El fichero se encuentra en un sistema de ficheros de sólo lectura.
.TP
.B ELOOP
Se han encontrado demasiados enlaces simbólicos al resolver
.IR oldpath " o " newpath .
.TP
.B ENOSPC
El dispositivo que contiene el fichero no tiene espacio para la nueva
entrada de directorio.
.SH "CONFORME A"
POSIX, 4.3BSD, ANSI C
.SH FALLOS
En los sistemas de ficheros NFS no puede asumir que el fichero no ha sido
renombrado si la operación ha fallado. Si el servidor renombra el fichero y
después cae, la RPC retransmitida, que será procesada cuando el servidor se
levante de nuevo, provocará un fallo. Se supone que la aplicación tratará
este problema. Vea
.BR link (2)
para un problema similar.
.SH "VÉASE TAMBIÉN"
.BR link (2),
.BR unlink (2),
.BR symlink (2),
.BR mv (1)