1*ee5a5918SSascha Wildner.\" Copyright (c) 1980, 1991, 1993 2*ee5a5918SSascha Wildner.\" The Regents of the University of California. All rights reserved. 3*ee5a5918SSascha Wildner.\" 4*ee5a5918SSascha Wildner.\" Redistribution and use in source and binary forms, with or without 5*ee5a5918SSascha Wildner.\" modification, are permitted provided that the following conditions 6*ee5a5918SSascha Wildner.\" are met: 7*ee5a5918SSascha Wildner.\" 1. Redistributions of source code must retain the above copyright 8*ee5a5918SSascha Wildner.\" notice, this list of conditions and the following disclaimer. 9*ee5a5918SSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright 10*ee5a5918SSascha Wildner.\" notice, this list of conditions and the following disclaimer in the 11*ee5a5918SSascha Wildner.\" documentation and/or other materials provided with the distribution. 12*ee5a5918SSascha Wildner.\" 3. Neither the name of the University nor the names of its contributors 13*ee5a5918SSascha Wildner.\" may be used to endorse or promote products derived from this software 14*ee5a5918SSascha Wildner.\" without specific prior written permission. 15*ee5a5918SSascha Wildner.\" 16*ee5a5918SSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 17*ee5a5918SSascha Wildner.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18*ee5a5918SSascha Wildner.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19*ee5a5918SSascha Wildner.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 20*ee5a5918SSascha Wildner.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21*ee5a5918SSascha Wildner.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22*ee5a5918SSascha Wildner.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23*ee5a5918SSascha Wildner.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24*ee5a5918SSascha Wildner.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25*ee5a5918SSascha Wildner.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26*ee5a5918SSascha Wildner.\" SUCH DAMAGE. 27*ee5a5918SSascha Wildner.\" 28*ee5a5918SSascha Wildner.\" @(#)open.2 8.2 (Berkeley) 11/16/93 29*ee5a5918SSascha Wildner.\" $FreeBSD$ 30*ee5a5918SSascha Wildner.\" 31*ee5a5918SSascha Wildner.Dd September 14, 2021 32*ee5a5918SSascha Wildner.Dt POSIX_FALLOCATE 2 33*ee5a5918SSascha Wildner.Os 34*ee5a5918SSascha Wildner.Sh NAME 35*ee5a5918SSascha Wildner.Nm posix_fallocate 36*ee5a5918SSascha Wildner.Nd pre-allocate storage for a range in a file 37*ee5a5918SSascha Wildner.Sh LIBRARY 38*ee5a5918SSascha Wildner.Lb libc 39*ee5a5918SSascha Wildner.Sh SYNOPSIS 40*ee5a5918SSascha Wildner.In fcntl.h 41*ee5a5918SSascha Wildner.Ft int 42*ee5a5918SSascha Wildner.Fn posix_fallocate "int fd" "off_t offset" "off_t len" 43*ee5a5918SSascha Wildner.Sh DESCRIPTION 44*ee5a5918SSascha WildnerRequired storage for the range 45*ee5a5918SSascha Wildner.Fa offset 46*ee5a5918SSascha Wildnerto 47*ee5a5918SSascha Wildner.Fa offset + 48*ee5a5918SSascha Wildner.Fa len 49*ee5a5918SSascha Wildnerin the file referenced by 50*ee5a5918SSascha Wildner.Fa fd 51*ee5a5918SSascha Wildneris guaranteed to be allocated upon successful return. 52*ee5a5918SSascha WildnerThat is, if 53*ee5a5918SSascha Wildner.Fn posix_fallocate 54*ee5a5918SSascha Wildnerreturns successfully, subsequent writes to the specified file data 55*ee5a5918SSascha Wildnerwill not fail due to lack of free space on the file system storage 56*ee5a5918SSascha Wildnermedia. 57*ee5a5918SSascha WildnerAny existing file data in the specified range is unmodified. 58*ee5a5918SSascha WildnerIf 59*ee5a5918SSascha Wildner.Fa offset + 60*ee5a5918SSascha Wildner.Fa len 61*ee5a5918SSascha Wildneris beyond the current file size, then 62*ee5a5918SSascha Wildner.Fn posix_fallocate 63*ee5a5918SSascha Wildnerwill adjust the file size to 64*ee5a5918SSascha Wildner.Fa offset + 65*ee5a5918SSascha Wildner.Fa len . 66*ee5a5918SSascha WildnerOtherwise, the file size will not be changed. 67*ee5a5918SSascha Wildner.Pp 68*ee5a5918SSascha WildnerSpace allocated by 69*ee5a5918SSascha Wildner.Fn posix_fallocate 70*ee5a5918SSascha Wildnerwill be freed by a successful call to 71*ee5a5918SSascha Wildner.Xr creat 3 72*ee5a5918SSascha Wildneror 73*ee5a5918SSascha Wildner.Xr open 2 74*ee5a5918SSascha Wildnerthat truncates the size of the file. 75*ee5a5918SSascha WildnerSpace allocated via 76*ee5a5918SSascha Wildner.Fn posix_fallocate 77*ee5a5918SSascha Wildnermay be freed by a successful call to 78*ee5a5918SSascha Wildner.Xr ftruncate 2 79*ee5a5918SSascha Wildnerthat reduces the file size to a size smaller than 80*ee5a5918SSascha Wildner.Fa offset + 81*ee5a5918SSascha Wildner.Fa len . 82*ee5a5918SSascha Wildner.Sh RETURN VALUES 83*ee5a5918SSascha WildnerIf successful, 84*ee5a5918SSascha Wildner.Fn posix_fallocate 85*ee5a5918SSascha Wildnerreturns zero. 86*ee5a5918SSascha WildnerIt returns an error on failure, without setting 87*ee5a5918SSascha Wildner.Va errno . 88*ee5a5918SSascha Wildner.Sh ERRORS 89*ee5a5918SSascha WildnerPossible failure conditions: 90*ee5a5918SSascha Wildner.Bl -tag -width Er 91*ee5a5918SSascha Wildner.It Bq Er EBADF 92*ee5a5918SSascha WildnerThe 93*ee5a5918SSascha Wildner.Fa fd 94*ee5a5918SSascha Wildnerargument is not a valid file descriptor. 95*ee5a5918SSascha Wildner.It Bq Er EBADF 96*ee5a5918SSascha WildnerThe 97*ee5a5918SSascha Wildner.Fa fd 98*ee5a5918SSascha Wildnerargument references a file that was opened without write permission. 99*ee5a5918SSascha Wildner.It Bq Er EFBIG 100*ee5a5918SSascha WildnerThe value of 101*ee5a5918SSascha Wildner.Fa offset + 102*ee5a5918SSascha Wildner.Fa len 103*ee5a5918SSascha Wildneris greater than the maximum file size. 104*ee5a5918SSascha Wildner.It Bq Er EINTR 105*ee5a5918SSascha WildnerA signal was caught during execution. 106*ee5a5918SSascha Wildner.It Bq Er EINVAL 107*ee5a5918SSascha WildnerThe 108*ee5a5918SSascha Wildner.Fa len 109*ee5a5918SSascha Wildnerargument was less than or equal to zero, the 110*ee5a5918SSascha Wildner.Fa offset 111*ee5a5918SSascha Wildnerargument was less than zero, 112*ee5a5918SSascha Wildneror the operation is not supported by the file system. 113*ee5a5918SSascha Wildner.It Bq Er EIO 114*ee5a5918SSascha WildnerAn I/O error occurred while reading from or writing to a file system. 115*ee5a5918SSascha Wildner.\".It Bq Er EINTEGRITY 116*ee5a5918SSascha Wildner.\"Corrupted data was detected while reading from the file system. 117*ee5a5918SSascha Wildner.It Bq Er ENODEV 118*ee5a5918SSascha WildnerThe 119*ee5a5918SSascha Wildner.Fa fd 120*ee5a5918SSascha Wildnerargument does not refer to a file that supports 121*ee5a5918SSascha Wildner.Nm . 122*ee5a5918SSascha Wildner.It Bq Er ENOSPC 123*ee5a5918SSascha WildnerThere is insufficient free space remaining on the file system storage 124*ee5a5918SSascha Wildnermedia. 125*ee5a5918SSascha Wildner.\".It Bq Er ENOTCAPABLE 126*ee5a5918SSascha Wildner.\"The file descriptor 127*ee5a5918SSascha Wildner.\".Fa fd 128*ee5a5918SSascha Wildner.\"has insufficient rights. 129*ee5a5918SSascha Wildner.It Bq Er ESPIPE 130*ee5a5918SSascha WildnerThe 131*ee5a5918SSascha Wildner.Fa fd 132*ee5a5918SSascha Wildnerargument is associated with a pipe or FIFO. 133*ee5a5918SSascha Wildner.El 134*ee5a5918SSascha Wildner.Sh SEE ALSO 135*ee5a5918SSascha Wildner.Xr ftruncate 2 , 136*ee5a5918SSascha Wildner.Xr open 2 , 137*ee5a5918SSascha Wildner.Xr unlink 2 , 138*ee5a5918SSascha Wildner.Xr creat 3 139*ee5a5918SSascha Wildner.Sh STANDARDS 140*ee5a5918SSascha WildnerThe 141*ee5a5918SSascha Wildner.Fn posix_fallocate 142*ee5a5918SSascha Wildnersystem call conforms to 143*ee5a5918SSascha Wildner.St -p1003.1-2004 . 144*ee5a5918SSascha Wildner.Sh HISTORY 145*ee5a5918SSascha WildnerThe 146*ee5a5918SSascha Wildner.Fn posix_fallocate 147*ee5a5918SSascha Wildnerfunction appeared in 148*ee5a5918SSascha Wildner.Fx 9.0 149*ee5a5918SSascha Wildnerand was ported to 150*ee5a5918SSascha Wildner.Dx 6.1 . 151*ee5a5918SSascha Wildner.Sh AUTHORS 152*ee5a5918SSascha Wildner.Fn posix_fallocate 153*ee5a5918SSascha Wildnerand this manual page were initially written by 154*ee5a5918SSascha Wildner.An Matthew Fleming Aq Mt mdf@FreeBSD.org . 155