Movatterモバイル変換


[0]ホーム

URL:


man7.org > Linux >man-pages

Linux/UNIX system programming training


posix_fallocate(3) — Linux manual page

NAME |LIBRARY |SYNOPSIS |DESCRIPTION |RETURN VALUE |ERRORS |ATTRIBUTES |STANDARDS |HISTORY |CAVEATS |SEE ALSO |COLOPHON

posix_fallocate(3)       Library Functions Manualposix_fallocate(3)

NAME        top

       posix_fallocate - allocate file space

LIBRARY        top

       Standard C library (libc,-lc)

SYNOPSIS        top

#include <fcntl.h>int posix_fallocate(intfd, off_toffset, off_tsize);   Feature Test Macro Requirements for glibc (seefeature_test_macros(7)):posix_fallocate():           _POSIX_C_SOURCE >= 200112L

DESCRIPTION        top

       The functionposix_fallocate() ensures that disk space is       allocated for the file referred to by the file descriptorfd for       the bytes in the range starting atoffset and continuing forsize       bytes.  After a successful call toposix_fallocate(), subsequent       writes to bytes in the specified range are guaranteed not to fail       because of lack of disk space.       If the size of the file is less thanoffset+size, then the file is       increased to this size; otherwise the file size is left unchanged.

RETURN VALUE        top

posix_fallocate() returns zero on success, or an error number on       failure.  Note thaterrno is not set.

ERRORS        top

EBADFfd is not a valid file descriptor, or is not opened for              writing.EFBIGoffset+size exceeds the maximum file size.EINTRA signal was caught during execution.EINVALoffset was less than 0, orsize was less than or equal to              0, or the underlying filesystem does not support the              operation.ENODEVfd does not refer to a regular file.ENOSPCThere is not enough space left on the device containing the              file referred to byfd.EOPNOTSUPP              The filesystem containing the file referred to byfd does              not support this operation.  This error code can be              returned by C libraries that don't perform the emulation              shown in CAVEATS, such as musl libc.ESPIPEfd refers to a pipe.

ATTRIBUTES        top

       For an explanation of the terms used in this section, seeattributes(7).       ┌───────────────────┬───────────────┬────────────────────────────┐       │InterfaceAttributeValue│       ├───────────────────┼───────────────┼────────────────────────────┤       │posix_fallocate() │ Thread safety │ MT-Safe (but see CAVEATS)  │       └───────────────────┴───────────────┴────────────────────────────┘

STANDARDS        top

       POSIX.1-2008.

HISTORY        top

       glibc 2.1.94.  POSIX.1-2001       POSIX.1-2008 says that an implementationshall give theEINVAL       error ifsize was 0, oroffset was less than 0.  POSIX.1-2001 says       that an implementationshall give theEINVALerror ifsize is less       than 0, oroffset was less than 0, andmay give the error ifsize       equals zero.

CAVEATS        top

       In the glibc implementation,posix_fallocate() is implemented       using thefallocate(2) system call, which is MT-safe.  If the       underlying filesystem does not supportfallocate(2), then the       operation is emulated with the following caveats:       •  The emulation is inefficient.       •  There is a race condition where concurrent writes from another          thread or process could be overwritten with null bytes.       •  There is a race condition where concurrent file size increases          by another thread or process could result in a file whose size          is smaller than expected.       •  Iffd has been opened with theO_APPENDorO_WRONLYflags, the          function fails with the errorEBADF.       In general, the emulation is not MT-safe.  On Linux, applications       may usefallocate(2) if they cannot tolerate the emulation       caveats.  In general, this is only recommended if the application       plans to terminate the operation ifEOPNOTSUPPis returned,       otherwise the application itself will need to implement a fallback       with all the same problems as the emulation provided by glibc.

SEE ALSO        top

fallocate(1),fallocate(2),lseek(2),posix_fadvise(2)

COLOPHON        top

       This page is part of theman-pages (Linux kernel and C library       user-space interface documentation) project.  Information about       the project can be found at        ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report       for this manual page, see       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.       This page was obtained from the tarball man-pages-6.15.tar.gz       fetched from       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on       2025-08-11.  If you discover any rendering problems in this HTML       version of the page, or you believe there is a better or more up-       to-date source for the page, or you have corrections or       improvements to the information in this COLOPHON (which isnot       part of the original manual page), send a mail to       man-pages@man7.orgLinux man-pages 6.15            2025-05-17posix_fallocate(3)

Pages that refer to this page:fallocate(1)rsync(1)fallocate(2)lseek(2)posix_fadvise(2)off_t(3type)



HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface.

For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere.

Hosting byjambit GmbH.

Cover of TLPI


[8]ページ先頭

©2009-2025 Movatter.jp