HPUX prealloc[2]

prealloc in anderen Kapiteln des hpux Handbuch:
prealloc.1
prealloc(2) prealloc(2)
NAME
prealloc - preallocate fast disk storage
SYNOPSIS
#include <unistd.h>
int prealloc(int fildes, off_t size);
DESCRIPTION
prealloc() is used to preallocate space on a disk for faster storage
operations.
fildes is a file descriptor obtained from a creat(), pen(), dup(), or
fcntl() system call for an ordinary file of zero length. It must be
opened writable, because it will be written to by prealloc(). size is
the size in bytes to be preallocated for the file specified by fildes.
At least size bytes will be allocated. Space is allocated in an
implementation-dependent fashion for fast sequential reads and writes.
The EOF in an extended file is left at the end of the preallocated
area. The current file pointer is left at zero. The file is zero-
filled.
Using prealloc() on a file does not give the file an attribute that is
inherited when copying or restoring the file using a program such as
cp or tar (see cp(1) and tar(1)). It simply ensures that disk space
has been preallocated for size bytes in a manner suited for sequential
access. The file can be extended beyond these limits by write()
operations past the original end of file. However, this space will
not necessarily be allocated using any special strategy.
EXAMPLES
Assuming a process has opened a file for writing, the following call
to prealloc() preallocates at least 50000 bytes on disk for the file
represented by file descriptor outfd:
prealloc (outfd, 50000);
DEPENDENCIES
Since the exact effect and performance benefits obtainable by using
this call vary with the implementation of the file system, performance
related details are described in the system administrator manuals for
each specific machine.
RETURN VALUE
Upon successful completion, prealloc() returns 0; otherwise, it
returns -1 and sets errno to indicate the error.
ERRORS
prealloc() fails and no disk space is allocated if any of the
following conditions are encountered:
Hewlett-Packard Company - 1 - HP-UX Release 9.0: August 1992
prealloc(2) prealloc(2)
[EBADF] fildes is not a valid open file descriptor opened
for writing.
[EDQUOT] User's disk quota block limit has been reached for
this file system.
[EFBIG] size exceeds the maximum file size or the
process's file size limit. See ulimit(2).
[ENOSPC] Not enough space is left on the device to allocate
the requested amount; no space was allocated.
[ENOTEMPTY] fildes not associated with an ordinary file of
zero length.
AUTHOR
prealloc() was developed by HP.
SEE ALSO
prealloc(1), creat(2), dup(2), fcntl(2), open(2), read(2), ulimit(2),
write(2).
WARNINGS
Allocation of the file space is highly dependent on current disk
usage. A successful return does not tell you how fragmented the file
actually might be if the disk is nearing its capacity.
Hewlett-Packard Company - 2 - HP-UX Release 9.0: August 1992