Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
NOM
rename - Changer le nom ou l'emplacement d'un fichier
SYNOPSIS
#include <stdio.h>
int rename(const char *oldpath, const char *newpath);
DESCRIPTION
rename() renomme un fichier, en le deplacant dans un autre repertoire
si necessaire. Tous les autres liens vers le fichier (crees avec
link(2)) sont inchanges. Les descripteurs de fichier ouverts sur
oldpath ne sont pas non plus affectes.
Si newpath existe deja, il sera ecrase (avec quelques restrictions,
voir le paragraphe ERREURS), de maniere a ce qu'a aucun moment, un
autre processus tentant d'acceder a newpath ne le voie absent.
Si oldpath et newpath sont des liens existants correspondant au meme
fichier, rename() ne fait rien et renvoie un code de succes.
Si newpath existe mais que l'operation echoue pour une raison
quelconque, rename() garantit la presence d'une instance de newpath en
place.
oldpath peut etre un repertoire. Dans ce cas, newpath doit etre soit
absent, soit un repertoire vide.
Neanmoins, pendant un ecrasement, il se trouve un court instant pendant
lequel a la fois oldpath et newpath font reference au fichier.
Si oldpath correspond a un lien symbolique, le lien est renomme ; si
newpath correspond a un lien symbolique, le lien est ecrase.
VALEUR RENVOY'EE
S'il reussit, cet appel systeme renvoie 0. S'il echoue, il renvoie -1
et remplit errno en consequence.
ERREURS
EACCES La permission d'ecrire est refusee dans le repertoire contenant
oldpath ou newpath ou la permission de parcours est refusee pour
l'un des repertoires des chemins oldpath ou newpath, ou encore
oldpath etait un repertoire et ne permet pas l'ecriture
(necessaire pour mettre a jour l'entree ..). (Consultez aussi
path_resolution(7).)
EBUSY Le renommage a echoue car oldpath ou newpath est un repertoire
utilise par un processus (peut-etre comme repertoire de travail,
ou comme repertoire racine, ou ouvert en lecture), ou il est
utilise par le systeme (comme point de montage par exemple). Le
systeme a donc considere qu'il y avait une erreur. (Notez qu'il
n'est pas indispensable de renvoyer EBUSY dans un tel cas --
rien n'empeche d'effectuer le renommage malgre tout -- mais il
est permis de retourner EBUSY si le systeme n'arrive pas a gerer
une telle situation).
EFAULT oldpath ou newpath pointent en dehors de l'espace d'adressage
accessible.
EINVAL Une partie du nouveau chemin contient en prefixe l'ancien
chemin, ou plus generalement, un repertoire ne peut pas etre
deplace dans ses propres sous-repertoires.
EISDIR newpath est un repertoire existant mais oldpath n'est pas un
repertoire
ELOOP Trop de liens symboliques ont ete rencontres en parcourant
oldpath ou newpath.
EMLINK oldpath a deja un nombre maximal de liens, ou bien c'est un
repertoire, et le repertoire contenant newpath a le nombre
maximal de liens.
ENAMETOOLONG
oldpath ou newpath est trop long.
ENOENT Le lien indique par oldpath n'existe pas ; ou un repertoire du
chemin newpath n'existe pas ; ou oldpath ou newpath est une
chaine vide.
ENOMEM Pas assez de memoire pour le noyau.
ENOSPC Le peripherique contenant le fichier n'a pas de place pour une
nouvelle entree de repertoire.
ENOTDIR
Un element du chemin d'acces oldpath ou newpath n'est pas un
repertoire, ou oldpath est un repertoire et newpath existe mais
n'est pas un repertoire.
ENOTEMPTY ou EEXIST
newpath est un repertoire non vide (contient autre chose que
<< . >> et << .. >>).
EPERM ou EACCES
Le repertoire contenant oldpath a le Sticky-bit (S_ISVTX)
positionne, et l'UID effectif du processus n'est ni celui du
fichier a deplacer, ni celui du repertoire le contenant, et le
processus n'est pas privilegie (sous Linux : n'a pas la capacite
CAP_FOWNER ; ou newpath est un fichier existant et le repertoire
le contenant a son sticky bit positionne et l'UID effectif du
processus n'est ni celui du fichier a deplacer, ni celui du
repertoire le contenant, et le processus n'est pas privilegie
(sous Linux : n'a pas la capacite CAP_FOWNER ; ou alors le
systeme de fichiers contenant pathname ne permet pas le
renommage de fichiers.
EROFS Le fichier se trouve sur un systeme de fichiers en lecture
seule.
EXDEV oldpath et newpath ne sont pas sur le meme systeme de fichiers.
(Linux permet de monter un systeme de fichiers a plusieurs
endroits, mais rename() ne marche pas entre differents points de
montage, meme si le systeme de fichiers monte sur les deux est
le meme.)
CONFORMIT'E
BSD 4.3, C89, C99, POSIX.1-2001.
BOGUES
Sur les systemes de fichiers NFS, ce n'est pas parce que l'operation a
echoue que le fichier n'a pas ete renomme. Si le serveur effectue le
deplacement, et s'effondre, la RPC transmise qui sera traitee lorsque
le serveur sera a nouveau en etat va indiquer un echec. L'application
doit supporter ce genre de probleme. Consultez link(2) pour un cas
similaire.
VOIR AUSSI
mv(1), chmod(2), link(2), renameat(2), symlink(2), unlink(2),
path_resolution(7), symlink(7)
COLOPHON
Cette page fait partie de la publication 3.27 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Julien
Cristau et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.