Python Glossary Русский

Python 3.3+Linuxosfunction

os.posix_fallocate

os — kernel hints

Pre-allocate disk space for a file of a given size. Availability: Linux.

Syntax

os.posix_fallocate(...)

Unlike truncate, it actually allocates disk space: running out of space shows up immediately rather than mid-write. The file size grows if needed. On filesystems lacking support the library may emulate allocation by writing zeros, which is slow.

Examples

import os
fd = os.open('big.bin', os.O_WRONLY | os.O_CREAT)   # → ? только Unix: дескриптор нового файла, например 3
os.posix_fallocate(fd, 0, 1024 * 1024)   # → ? только Unix: на диске заранее выделен 1 МБ под файл
print(os.fstat(fd).st_size)   # → 1048576 — файл сразу нужного размера, хотя не записано ни байта
os.ftruncate(fd, 8 * 1024 * 1024)   # → ? размер вырастет до 8 МБ, но место НЕ резервируется — выйдет «дырявый» (sparse) файл
os.posix_fallocate(fd, 0, 0)   # → ? только Unix: OSError [Errno 22] Invalid argument — длина должна быть больше нуля

See also

Common errors

Open in the full glossarydocs.python.orgReport an inaccuracy