trusty (2) rename.2.gz

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