Loading

NOM

       truncate, ftruncate, truncate64, ftruncate64 - Tronquer  un  fichier  à
       une longueur donnée.

SYNOPSIS

       #include <unistd.h>
       #include <sys/types.h>

       int truncate(const char *path, off_t length);
       int ftruncate(int fd, off_t length);

       int truncate64(const char *path, off64_t length);
       int ftruncate64(int fd, off64_t length);

   Exigences  de  macros  de  test  de  fonctionnalités  pour  la  glibc (voir
   feature_test_macros(7)) :

       truncate() : _BSD_SOURCE || _XOPEN_SOURCE >= 500
       ftruncate() : _BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
       _POSIX_C_SOURCE >= 200112L

   En  environnement  32 bits,  truncate64  et  ftruncate64  opèrent  sur  les
   fichiers de taille supérieure à 2 Go (moins un octet). Se référer à open(2)
   (O_LARGEFILE) ou au standard LFS.

       Les  appels  truncate()  et  ftruncate() tronquent le fichier ordinaire
       référencé par path ou par le descripteur fd à une longueur d’exactement
       length octets.

       Si  le  fichier  était  plus  long,  les  données  supplémentaires sont
       perdues. Si le fichier était plus court, il est étendu, et  la  portion
       supplémentaire est remplie caractères nuls (« \0 »).

       Le pointeur de position n’est pas modifié.

       Si  la  taille est modifiée, les champs st_ctime et st_mtime du fichier
       (respectivement heure de dernière modification d’état  et  de  dernière
       modification ;  voir  stat(2))  sont mis à jour, et les bits Set-UID et
       Set-GID peuvent être effacés.

       Avec ftruncate(), le  fichier  doit  être  ouvert  en  écriture ;  avec
       truncate(), il doit être accessible en écriture.

VALEUR RENVOYÉE

       En  cas  de  réussite,  zéro est renvoyé, sinon -1 est renvoyé et errno
       contient le code d’erreur.

ERREURS

       Pour truncate() :

       EACCES Le fichier n’est pas accessible en écriture, ou  un  élément  du
              chemin   d’accès   ne   permet  pas  le  parcours.  (Voir  aussi
              path_resolution(7).)

       EFAULT Path pointe en dehors de l’espace d’adressage accessible.

       EFBIG  L’argument length dépasse la taille maximum d’un fichier.

       EINTR  Un signal a été capturé pendant l’exécution.

       EINVAL L’argument length est  négatif  ou  plus  grand  que  la  taille
              maximale d’un fichier.

       EIO    Une erreur d’entrée-sortie bas niveau s’est produite.

       EINTR  Alors  qu’il  était  bloqué  en  attente  de  fin, l’appel a été
              interrompu par un gestionnaire  de  signal ;  voir  fcntl(2)  et
              signal(7).

       EISDIR Le fichier est en réalité un répertoire.

       ELOOP  Trop  de  liens  symboliques ont été rencontrés en parcourant le
              chemin.

       ENAMETOOLONG
              Un composant du chemin  dépasse  255  caractères  ou  le  chemin
              complet dépasse 1023 caractères.

       ENOENT Le fichier indiqué n’existe pas.

       ENOTDIR
              Un élément du chemin d’accès n’est pas un répertoire.

       EPERM  Le  système  de  fichiers  ne  permet  pas d’agrandir un fichier
              au-delà de sa taille actuelle.

       EROFS  Le fichier spécifié réside sur un système de fichiers en lecture
              seule.

       ETXTBSY
              Le fichier est un programme actuellement en cours d’exécution.

       Pour  ftruncate() les mêmes erreurs sont possibles, sauf qu’au lieu des
       problèmes avec path, on peut en avoir avec le  descripteur  de  fichier
       fd :

       EBADF  fd n’est pas un descripteur valable.

       EBADF ou EINVAL
              fd n’est pas ouvert en écriture.

       EINVAL fd n’est pas un descripteur de fichier ordinaire.

CONFORMITÉ

       BSD 4.4,  SVr4,  POSIX.1-2001  (ces  appels  système  sont apparus dans
       BSD4.2).

NOTES

       La description ci-dessus est celle des systèmes compatibles  XSI.  Pour
       les   systèmes   non  compatibles,  le  standard  POSIX  autorise  deux
       comportements pour ftruncate() quand  length  dépasse  la  longueur  du
       fichier  (notez  que  truncate() n’est pas du tout spécifié dans un tel
       environnement) : soit renvoyer une erreur,  soit  étendre  le  fichier.
       Linux,  comme  la  plupart  des  Unix, suit le comportement XSI sur les
       systèmes de fichiers natifs. Cependant, certains systèmes  de  fichiers
       non natifs ne permettent pas l’utilisation de truncate() et ftruncate()
       pour étendre un fichier au-delà de  sa  taille  actuelle :  un  exemple
       notable sous Linux est VFAT.

VOIR AUSSI

       open(2), stat(2), path_resolution(7)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.23 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

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

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