Provided by: manpages-fr-dev_3.57d1p1-1_all bug

NOM

       fallocate - Manipuler un espace de fichier

SYNOPSIS

       #define _GNU_SOURCE             /* Consultez feature_test_macros(7) */
       #include <fcntl.h>

       int fallocate(int fd, int mode, off_t offset, off_t len);

DESCRIPTION

       C'est  un  appel  système  spécifique  à  Linux  et non portable. Pour la méthode portable, spécifiée par
       POSIX.1, pour assurer que de l'espace est alloué pour un fichier, consultez posix_fallocate(3).

       fallocate() permet à l'appelant de manipuler directement l'espace disque alloué pour le fichier référencé
       par fd pour la plage d'octets débutant à offset et de longueur len octets.

       Le paramètre mode définit l'opération à effectuer  sur  la  plage  donnée.  Les  sous-sections  suivantes
       apportent des précisions sur les opérations prises en charge.

   Allocation d'espace disque.
       L'opération  par  défaut  (c'est-à-dire  si  mode  est  zéro)  de fallocate() alloue l'espace disque dans
       l'intervalle indiqué par offset et len. La taille du fichier (comme indiquée par stat(2))  sera  modifiée
       si  offset+len  est  supérieur  à  la  taille du fichier. Toute sous-région dans l'intervalle indiqué par
       offset et len sera initialisée à zéro si elle ne contient  pas  de  données  au  moment  de  l'appel.  Ce
       comportement   par   défaut   ressemble   beaucoup   au  comportement  de  la  fonction  de  bibliothèque
       posix_fallocate(3), et est conçu comme une méthode d'implémentation optimisée de cette fonction.

       Après un appel réussi, les écritures suivantes  dans  l'intervalle  indiqué  par  offset  et  len  seront
       garanties sans échec dû à un manque d'espace disque.

       Si  l'attribut  FALLOC_FL_KEEP_SIZE est indiqué dans mode, le comportement de l'appel est similaire, mais
       la taille du fichier ne  sera  pas  modifiée  si  offset+len  est  supérieur  à  la  taille  du  fichier.
       L'allocation  préalable  de blocs mis à zéro après la fin du fichier de cette façon permet d'optimiser la
       charge de travail d'ajout.

       Parce que l'allocation est effectuée en fragments de taille de blocs, fallocate() peut allouer un  espace
       de disque plus grand que celui qui a été indiqué.

   Désallocation d'espace de fichier
       Indiquer  le paramètre FALLOC_FL_PUNCH_HOLE (disponible depuis Linux 2.6.38) dans mode désalloue l'espace
       (c'est-à-dire crée un trou)  dans  l'intervalle  d'octets  commençant  à  offset  et  continuant  pendant
       len octets.  Dans  l'espace  indiqué,  les  blocs partiels de systèmes de fichiers sont mis à zéro et les
       blocs complets de systèmes de fichiers sont retirés du fichier.  Après  un  appel  réussi,  les  lectures
       suivantes dans cet intervalle renverront des zéros.

       Le  paramètre  FALLOC_FL_PUNCH_HOLE  doit  être  inclus  avec  FALLOC_FL_KEEP_SIZE  dans mode (avec un OU
       binaire) ; autrement dit, même en faisant des trous après la fin du fichier, la taille du fichier  (comme
       indiquée par stat(2)) ne changera pas.

       Les  systèmes de fichiers ne prennent pas tous FALLOC_FL_PUNCH_HOLE en charge ; si un système de fichiers
       n'accepte pas l'opération, une erreur est renvoyée. L'opération est prise en  charge  notamment  par  les
       systèmes de fichiers suivants :

       *  XFS (depuis Linux 2.6.38)

       *  ext4 (depuis Linux 3.0)

       *  Btrfs (depuis Linux 3.7)

       *  tmpfs (depuis Linux 3.5)

VALEUR RENVOYÉE

       En  cas  de  succès,  fallocate()  renvoie  0.  En cas d'erreur, -1 est renvoyé et errno contient le code
       d'erreur.

ERREURS

       EBADF  fd n'est pas un descripteur de fichier valable ou n'est pas ouvert en écriture.

       EFBIG  offset+len excède la taille maximum de fichier.

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

       EINVAL offset était inférieur à 0, ou len était inférieur ou égal à 0.

       EIO    Une erreur d'entrée-sortie s'est produite durant la  lecture  ou  l'écriture  sur  un  système  de
              fichiers.

       ENODEV fd  ne  fait  pas référence à un fichier régulier ou un répertoire (si fd est un tube ou une FIFO,
              une erreur différente en résultera).

       ENOSPC Il n'y a pas suffisamment d'espace  disponible  sur  le  périphérique  où  se  trouve  le  fichier
              référencé par fd.

       ENOSYS Ce noyau ne met pas en œuvre fallocate().

       EOPNOTSUPP
              Le  système  de  fichiers contenant le fichier référencé par fd ne gère pas cette opération, ou le
              mode n'est pas pris en charge par le système de fichiers contenant le fichier référencé par fd.

       EPERM  Le  fichier  indiqué  par  fd  est  marqué  immuable  (consultez  chattr(1)).  Ou :  mode  indique
              FALLOC_FL_PUNCH_HOLE  et  le  fichier  indiqué  par  fd  est marqué en ajout uniquement (consulter
              chattr(1)).

       ESPIPE fd fait référence à un tube ou une FIFO.

VERSIONS

       fallocate() est disponible dans Linux depuis le noyau 2.6.23. La glibc  le  prend  en  charge  depuis  la
       version  2.10.  Les  paramètres  FALLOC_FL_*  ne sont définis dans les en-têtes de la glibc que depuis la
       version 2.18.

CONFORMITÉ

       fallocate() est spécifique à Linux.

VOIR AUSSI

       fallocate(1), ftruncate(2), posix_fadvise(3), posix_fallocate(3)

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

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

Linux                                            24 janvier 2014                                    FALLOCATE(2)