Loading

NOM

       fallocate - Manipuler un espace de fichier

SYNOPSIS

       #define _GNU_SOURCE
       #include <fcntl.h>

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

       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().

       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.
       Actuellement, un seul attribut est pris en charge pour mode :

       FALLOC_FL_KEEP_SIZE
              Cet attribut alloue et initialise à zéro l’espace disque  de  la
              plage  définie  par  offset  et  len. Après un appel réussi, les
              écritures dans cette place sont assurées de  ne  pas  échouer  à
              cause  d’un  manque  de place sur le disque. La préallocation de
              blocs initialisés à zéro au-delà de la fin de fichier est  utile
              pour  l’optimisation  de  la  charge de travail pour d’ajout. La
              préallocation ne modifie pas la taille du fichier (comme indiqué
              par stat(2)) même si elle est inférieure à offset+len.

       Si  l’attribut  FALLOC_FL_KEEP_SIZE  n’est  pas  spécifié dans mode, le
       comportement par défaut est pratiquement le même que  quand  l’attribut
       est  spécifié. La seule différence est qu’en cas de réussite, la taille
       du fichier sera modifiée si offset + len est supérieur à la  taille  du
       fichier.  Ce  comportement par défaut ressemble de près au comportement
       de la fonction de bibliothèque posix_fallocate(3), et est  conçu  comme
       une méthode d’optimisation de l’implémentation de cette fonction.

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

VALEUR RENVOYÉE

       La  fonction  fallocate()  renvoie zéro en cas de réussite et -1 en cas
       d’échec.

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 Le système de fichiers contenant le fichier référencé par fd  ne
              gère pas cette opération.

       EOPNOTSUPP
              Le  mode  n’est  pas  pris  en charge par le système de fichiers
              contenant le fichier référencé par fd.

VERSIONS

       fallocate() est disponible dans Linux depuis le noyau 2.6.23. Le  glibc
       le prend en charge depuis la version 2.10.

CONFORMITÉ

       fallocate() est spécifique à Linux.

VOIR AUSSI

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

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 est maintenue par Julien Cristau
       <julien.cristau@ens-lyon.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> ».