Provided by: manpages-fr-dev_3.57d1p1-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 déplaçant dans un autre répertoire si nécessaire. Tous
       les autres liens vers le fichier (créés avec link(2)) sont inchangés. Les descripteurs  de
       fichier ouverts sur oldpath ne sont pas non plus affectés.

       Si  newpath  existe  déjà,  il sera écrasé (avec quelques restrictions, voir le paragraphe
       ERREURS), de manière à ce qu'à aucun  moment,  un  autre  processus  tentant  d'accéder  à
       newpath ne le voie absent.

       Si  oldpath et newpath sont des liens existants correspondant au même fichier, rename() ne
       fait rien et renvoie un code de succès.

       Si newpath existe mais  que  l'opération  échoue  pour  une  raison  quelconque,  rename()
       garantit la présence d'une instance de newpath en place.

       oldpath  peut  être  un  répertoire.  Dans  ce cas, newpath doit être soit absent, soit un
       répertoire vide.

       Néanmoins, pendant un écrasement, il se trouve un court instant pendant lequel à  la  fois
       oldpath et newpath font référence au fichier.

       Si  oldpath correspond à un lien symbolique, le lien est renommé ; si newpath correspond à
       un lien symbolique, le lien est écrasé.

VALEUR RENVOYÉE

       S'il réussit, cet appel système renvoie 0. S'il échoue, il renvoie -1 et remplit errno  en
       conséquence.

ERREURS

       EACCES La  permission d'écrire est refusée dans le répertoire contenant oldpath ou newpath
              ou la permission de parcours est refusée pour  l'un  des  répertoires  des  chemins
              oldpath  ou  newpath,  ou  encore  oldpath  était  un  répertoire  et ne permet pas
              l'écriture  (nécessaire  pour  mettre  à  jour  l'entrée  ..).   (Consultez   aussi
              path_resolution(7).)

       EBUSY  Le  renommage  a  échoué  car  oldpath  ou newpath est un répertoire utilisé par un
              processus (peut-être comme répertoire de travail, ou comme  répertoire  racine,  ou
              ouvert  en  lecture),  ou il est utilisé par le système (comme point de montage par
              exemple). Le système a donc considéré qu'il y avait une erreur. (Notez qu'il  n'est
              pas indispensable de renvoyer EBUSY dans un tel cas — rien n'empêche d'effectuer le
              renommage malgré tout — mais il  est  permis  de  retourner  EBUSY  si  le  système
              n'arrive pas à gérer une telle situation).

       EDQUOT Le  quota  de  blocs  de  disque  de l'utilisateur sur le système de fichiers a été
              atteint.

       EFAULT oldpath ou newpath pointent en dehors de l'espace d'adressage accessible.

       EINVAL Une partie  du  nouveau  chemin  contient  en  préfixe  l'ancien  chemin,  ou  plus
              généralement,   un   répertoire   ne   peut  pas  être  déplacé  dans  ses  propres
              sous-répertoires.

       EISDIR newpath est un répertoire existant mais oldpath n'est pas un répertoire

       ELOOP  Trop de liens symboliques ont été rencontrés en parcourant oldpath ou newpath.

       EMLINK oldpath a déjà un nombre maximal de liens, ou  bien  c'est  un  répertoire,  et  le
              répertoire contenant newpath a le nombre maximal de liens.

       ENAMETOOLONG
              oldpath ou newpath est trop long.

       ENOENT Le  lien  indiqué  par  oldpath  n'existe  pas ; ou un répertoire du chemin newpath
              n'existe pas ; ou oldpath ou newpath est une chaîne vide.

       ENOMEM Pas assez de mémoire pour le noyau.

       ENOSPC Le périphérique contenant le fichier n'a pas de place pour une nouvelle  entrée  de
              répertoire.

       ENOTDIR
              Un élément du chemin d'accès oldpath ou newpath n'est pas un répertoire, ou oldpath
              est un répertoire et newpath existe mais n'est pas un répertoire.

       ENOTEMPTY ou EEXIST
              newpath est un répertoire non vide (contient autre chose que « . » et « .. »).

       EPERM ou EACCES
              Le répertoire contenant oldpath a le  Sticky-bit  (S_ISVTX)  positionné,  et  l'UID
              effectif  du processus n'est ni celui du fichier à déplacer, ni celui du répertoire
              le contenant, et le processus  n'est  pas  privilégié  (sous  Linux :  n'a  pas  la
              capacité  CAP_FOWNER ;  ou  newpath  est  un  fichier  existant et le répertoire le
              contenant a son sticky bit positionné et l'UID effectif du processus n'est ni celui
              du  fichier  à déplacer, ni celui du répertoire le contenant, et le processus n'est
              pas privilégié (sous Linux : n'a pas la capacité CAP_FOWNER ; ou alors  le  système
              de fichiers contenant pathname ne permet pas le renommage de fichiers.

       EROFS  Le fichier se trouve sur un système de fichiers en lecture seule.

       EXDEV  oldpath  et  newpath  ne sont pas sur le même système de fichiers. (Linux permet de
              monter un système de fichiers à plusieurs endroits, mais  rename()  ne  marche  pas
              entre  différents  points  de montage, même si le système de fichiers monté sur les
              deux est le même.)

CONFORMITÉ

       BSD 4.3, C89, C99, POSIX.1-2001.

BOGUES

       Sur les systèmes de fichiers NFS, ce n'est pas parce  que  l'opération  a  échoué  que  le
       fichier  n'a pas été renommé. Si le serveur effectue le déplacement, et s'effondre, la RPC
       transmise qui sera traitée lorsque le serveur sera à nouveau en état va indiquer un échec.
       L'application  doit  supporter  ce  genre  de  problème.  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.57 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe    Blaess    <http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Julien  Cristau  et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>  ou  par  un  rapport  de  bogue   sur   le   paquet
       manpages-fr.

       Vous  pouvez  toujours  avoir  accès  à la version anglaise de ce document en utilisant la
       commande « man -L C <section> <page_de_man> ».