posix_fallocate - file space control
#include <fcntl.h> int posix_fallocate(int fd, off_t offset, off_t len);
The posix_fallocate() function ensures that any required storage for regular file data starting at offset and continuing for len bytes is allocated on the file system storage media. If posix_fallocate() returns successfully, subsequent writes to the specified file data will not fail due to the lack of free space on the file system storage media.
If the offset+len is beyond the current file size, then posix_fallocate() adjusts the file size to offset+len. Otherwise, the file size is not changed.
Space allocated with posix_fallocate() is freed by a successful call to creat(2) or open(2) that truncates the size of the file. Space allocated with posix_fallocate() may be freed by a successful call to ftruncate(3C) that reduces the file size to a size smaller than offset+len.
Upon successful completion, posix_fallocate() returns zero. Otherwise, an error number is returned to indicate the error.
The posix_fallocate() function will fail if:
The file exists, mandatory file/record locking is set and there are outstanding record locks on the file. See chmod(2).
The fd argument is not a valid file descriptor or references a file that was opened without write permission.
The file exists, mandatory file/record locking is set and a deadlock condition was detected.
The value of offset+len is greater than the maximum file size.
A signal was caught during execution.
The len argument is less than or equal to zero, or the offset argument is less than zero.
An I/O error occurred while reading from or writing to a file system.
The fd argument does not refer to a regular file.
The fildes argument points to a remote machine and the link to that machine is no longer active.
There is insufficient free space remaining on the file system storage media.
The fd argument is associated with a pipe or FIFO.
The posix_fallocate() function has a transitional interface for 64-bit file offsets. See lf64(5).
See attributes(5) for descriptions of the following attributes: