Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       truncate, ftruncate - 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);

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

       truncate() :
           _BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
           || /* Depuis la glibc 2.12 : */ _POSIX_C_SOURCE >= 200809L

       ftruncate() :
           _BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
           || /* Depuis la glibc 2.3.5 : */ _POSIX_C_SOURCE >= 200112L

DESCRIPTION

       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 ; consultez 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

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

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.  (Consultez  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 ; consultez 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
       BSD 4.2).

NOTES

       Les   détails  dans  la  section  DESCRIPTION  sont  ceux  de  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.

       Les appels système truncate() et ftruncate() originaux de  Linux  n'ont
       pas  été  conçus  pour  gérer  les  positions dans des fichiers de très
       grosse taille. En conséquence, Linux 2.4 a ajouté  les  appels  système
       truncate64() et ftruncate64() qui permettent de gérer de gros fichiers.
       Cependant, ces détails peuvent être ignorés par  les  applications  qui
       utilisent   la   glibc,   car  ses  fonctions  encapsulent  de  manière
       transparente les appels système les plus récents disponibles.

BOGUES

       Un bogue dans les en‐têtes de la glibc 2.12 fait que la valeur minimale
       de  _POSIX_C_SOURCE  requise  pour  exposer  la déclaration ftruncate()
       était 200809L au lieu de 200112L. Ce  bogue  a  été  corrigé  dans  les
       versions ultérieures de la glibc.

VOIR AUSSI

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

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.32 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'équipe   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'é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> ».