xref: /dflybsd-src/lib/libc/sys/posix_fallocate.2 (revision ee5a5918eca0f44cdc7486c325ef082f96aec51b)
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