posix_fallocate(3) Library Functions Manual posix_fallocate(3) NOM posix_fallocate - Allouer de l'espace pour un fichier BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include int posix_fallocate(int fd, off_t offset, off_t len); Exigences de macros de test de fonctionnalites pour la glibc (consulter feature_test_macros(7)) : posix_fallocate() : _POSIX_C_SOURCE >= 200112L DESCRIPTION La fonction posix_fallocate() assure l'allocation d'espace disque pour le fichier reference par le descripteur fd pour les octets dans l'intervalle commencant a offset et s'etendant sur len octets. Apres un appel reussi a posix_fallocate(), toute ecriture ulterieure dans l'intervalle specifie est garantie de ne pas echouer a cause d'un manque d'espace disque. Si la taille du fichier est inferieure a offset+len, le fichier est agrandi a cette taille ; autrement, la taille du fichier n'est pas modifiee. VALEUR RENVOYEE posix_fallocate() renvoie 0 si elle reussit et un numero d'erreur si elle echoue. Notez que errno n'est pas ecrite. ERREURS EBADF fd n'est pas un descripteur de fichier valable ou n'est pas ouvert en ecriture. EFBIG offset+len depasse la taille maximale du fichier. EINTR Un signal a ete capture pendant l'execution. EINVAL offset etait inferieur a 0, len etait inferieur ou egal a 0 ou le systeme de fichiers sous-jacent ne prend par en charge l'operation. ENODEV fd ne fait pas reference a un fichier regulier. ENOSPC Il n'y a pas suffisamment d'espace disponible sur le peripherique ou se trouve le fichier reference par fd. EOPNOTSUPP Le systeme de fichiers contenant le fichier reference par fd ne prend pas en charge cette operation. Ce code d'erreur peut etre retourne par des bibliotheques C, comme musl libc, n'effectuant pas l'emulation expliquee dans les NOTES. ESPIPE fd fait reference a un tube. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +------------------+--------------------------+------------------------+ |Interface | Attribut | Valeur | +------------------+--------------------------+------------------------+ |posix_fallocate() | Securite des threads | MT-Safe (mais | | | | consultez les NOTES) | +------------------+--------------------------+------------------------+ STANDARDS POSIX.1-2008. HISTORIQUE glibc 2.1.94. POSIX.1-2001. POSIX.1-2008 indique qu'une implementation doit renvoyer l'erreur EINVAL si len valait 0 ou si offset etait inferieur a 0. POSIX.1-2001 indique qu'une implementation doit renvoyer l'erreur EINVAL si len est inferieur a 0 ou si offset est inferieur a 0 et peut renvoyer cette erreur si len est egal a 0. AVERTISSEMENTS Dans l'implementation de la glibc, posix_fallocate() est implementee avec un appel a fallocate(2) qui est MT-safe. Si le systeme de fichiers sous-jacent ne prend pas fallocate(2) en charge, alors l'operation est emulee avec les reserves suivantes : - L'emulation n'est pas efficace. - Il y a une situation de competition dans laquelle des ecritures concurrentes depuis un autre fil d'execution ou processus peuvent etre reecrites avec des octets NULL. - Il y a une situation de competition dans laquelle l'augmentation de la taille d'un fichier par un autre fil d'execution ou processus peut engendrer un fichier dont la taille est inferieure a celle attendue. - Si fd a ete ouvert avec les attributs O_APPEND ou O_WRONLY, la fonction echoue avec l'erreur EBADF. L'emulation n'est en general pas MT-Safe. Sur Linux, les applications peuvent utiliser fallocate(2) lorsqu'elles ne peuvent tolerer les reserves venant de l'emulation. En general, cela n'est recommande que si l'application souhaite terminer l'operation si EOPNOTSUPP est retourne. Autrement, l'application doit elle-meme implementer une methode de secours avec les memes problemes que ceux fournis par la glibc. VOIR AUSSI fallocate(1), fallocate(2), lseek(2), posix_fadvise(2) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Gregoire Scano Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 posix_fallocate(3)