FALLOCATE
Section : Manuel du programmeur Linux (
2)
Mise à jour de la version anglaise : 20 juillet 2007
Index
Menu principal
NOM
fallocate - Manipuler des espaces de fichiers
SYNOPSIS
#include <linux/falloc.h>
long fallocate(int fd, int mode, loff_t offset, loff_t len);
DESCRIPTION
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.
L'argument
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 des charges 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
fallocate()
renvoie zéro s'il réussit, ou un code d'erreur s'il échoue.
Veuillez noter que
errno
n'est pas renseignée.
ERREURS
- EBADF
-
fd
n'est pas un descripteur de fichier valide,
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 pendant la lecture
ou l'écriture sur le 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 prend pas en charge cette opération.
- EOPNOTSUPP
-
Le
mode
n'est pas pris en charge par le système de fichier contenant le fichier
référencé par
fd.
VERSIONS
fallocate()
est disponible sous Linux depuis le noyau 2.6.23.
CONFORMITÉ
fallocate()
est spécifique à Linux.
VOIR AUSSI
ftruncate(2),
posix_fadvise(3),
posix_fallocate(3)
TRADUCTION
Ce document est une traduction réalisée par Alain Portal
<aportal AT univ-montp2 DOT fr> le 22 décembre 2007
et révisée le 17 juillet 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation
française de qualité. La version anglaise la plus à jour de ce document est
toujours consultable via la commande : « LANG=C man 2 fallocate ».
N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute
erreur dans cette page de manuel.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- VERSIONS
-
- CONFORMITÉ
-
- VOIR AUSSI
-
- TRADUCTION
-
Dernière mise à jour : 17 juillet 2008