The Open Group Base Specifications Issue 7
IEEE Std 1003.1, 2013 Edition
Copyright © 2001-2013 The IEEE and The Open Group

#### NAME

> posix_fallocate - file space control (ADVANCED REALTIME)

#### SYNOPSIS

> ``[ADV] #include <fcntl.h>
> int posix_fallocate(int` fd`, off_t` offset`, off_t` len`);``
> `
> `

#### DESCRIPTION

> The posix_fallocate() function shall ensure 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 shall 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() shall adjust the file size to offset+ len. Otherwise, the file size shall not be changed.

> It is implementation-defined whether a previous posix_fadvise() call influences allocation strategy.

> Space allocated via posix_fallocate() shall be freed by a successful call to creat() or open() that truncates the size of the file. Space allocated via posix_fallocate() may be freed by a successful call to ftruncate() that reduces the file size to a size smaller than offset+ len.

#### RETURN VALUE

> Upon successful completion, posix_fallocate() shall return zero; otherwise, an error number shall be returned to indicate the error.

#### ERRORS

> The posix_fallocate() function shall fail if:

> [EBADF]
>   The fd argument is not a valid file descriptor.
> [EBADF]
>   The fd argument references a file that was opened without write permission.
> [EFBIG]
>   The value of offset+ len is greater than the maximum file size.
> [EINTR]
>   A signal was caught during execution.
> [EINVAL]
>   The len argument is less than zero, or the offset argument is less than zero, or the underlying file system does not support this operation.
> [EIO]
>   An I/O error occurred while reading from or writing to a file system.
> [ENODEV]
>   The fd argument does not refer to a regular file.
> [ENOSPC]
>   There is insufficient free space remaining on the file system storage media.
> [ESPIPE]
>   The fd argument is associated with a pipe or FIFO.

> The posix_fallocate() function may fail if:

> [EINVAL]
>   The len argument is zero.

The following sections are informative.

#### EXAMPLES

> None.

#### APPLICATION USAGE

> The posix_fallocate() function is part of the Advisory Information option and need not be provided on all implementations.

#### RATIONALE

> None.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> creat, ftruncate, open, unlink

> XBD <fcntl.h>

#### CHANGE HISTORY

> First released in Issue 6. Derived from IEEE Std 1003.1d-1999.

> In the SYNOPSIS, the inclusion of <sys/types.h> is no longer required.

> IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/69 is applied, changing the function prototype in the SYNOPSIS section. The previous prototype was not large file-aware, and the standard developers felt it acceptable to make this change before implementations of this function become widespread.

#### Issue 7

> Austin Group Interpretations 1003.1-2001 #022, #024, and #162 are applied, changing the definition of the [EINVAL] error.

End of informative text.

return to top of page

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
Copyright © 2001-2013 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]