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 et initialise à zéro
  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. 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.
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
 
  - 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. Le glibc le
  prend en charge depuis la version 2.10.
fallocate() est spécifique à Linux.
VOIR AUSSI¶
ftruncate(2), 
posix_fadvise(3), 
posix_fallocate(3)
COLOPHON¶
Cette page fait partie de la publication 3.44 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> ».