Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

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> >>.