2004-11-03 13:51:07 +00:00
|
|
|
.\" Hey Emacs! This file is -*- nroff -*- source.
|
|
|
|
.\"
|
|
|
|
.\" This manpage is Copyright (C) 2004, Michael Kerrisk
|
|
|
|
.\"
|
|
|
|
.\" Permission is granted to make and distribute verbatim copies of this
|
|
|
|
.\" manual provided the copyright notice and this permission notice are
|
|
|
|
.\" preserved on all copies.
|
|
|
|
.\"
|
|
|
|
.\" Permission is granted to copy and distribute modified versions of this
|
|
|
|
.\" manual under the conditions for verbatim copying, provided that the
|
|
|
|
.\" entire resulting derived work is distributed under the terms of a
|
|
|
|
.\" permission notice identical to this one.
|
|
|
|
.\"
|
|
|
|
.\" Since the Linux kernel and libraries are constantly changing, this
|
|
|
|
.\" manual page may be incorrect or out-of-date. The author(s) assume no
|
|
|
|
.\" responsibility for errors or omissions, or for damages resulting from
|
|
|
|
.\" the use of the information contained herein.
|
|
|
|
.\"
|
|
|
|
.\" Formatted or processed versions of this manual, if unaccompanied by
|
|
|
|
.\" the source, must acknowledge the copyright and authors of this work.
|
|
|
|
.\"
|
2004-11-03 14:43:40 +00:00
|
|
|
.\" 2004-05-40 Created by Michael Kerrisk <mtk-manpages@gmx.net>
|
2004-11-03 13:51:07 +00:00
|
|
|
.\" 2004-10-05 aeb, minor correction
|
|
|
|
.\"
|
|
|
|
.TH READAHEAD 2 2004-10-05 "Linux 2.6.5" "Linux Programmer's Manual"
|
|
|
|
.SH NAME
|
|
|
|
readahead \- perform file readahead into page cache
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.nf
|
|
|
|
.B #include <fcntl.h>
|
|
|
|
.sp
|
|
|
|
.BI "ssize_t readahead(int " fd ", off64_t *" offset ", size_t " count );
|
|
|
|
.fi
|
|
|
|
.SH DESCRIPTION
|
2005-10-19 07:07:02 +00:00
|
|
|
.BR readahead ()
|
2004-11-03 13:51:07 +00:00
|
|
|
populates the page cache with data from a file so that subsequent
|
|
|
|
reads from that file will not block on disk I/O.
|
|
|
|
The
|
|
|
|
.I fd
|
|
|
|
argument is a file descriptor identifying the file which is
|
|
|
|
to be read.
|
|
|
|
The
|
|
|
|
.I offset
|
|
|
|
argument specifies the starting point from which data is to be read
|
|
|
|
and
|
|
|
|
.I count
|
|
|
|
specifies the number of bytes to be read.
|
|
|
|
I/O is performed in whole pages, so that
|
|
|
|
.I offset
|
|
|
|
is effectively rounded down to a page boundary
|
|
|
|
and bytes are read up to the next page boundary greater than or
|
|
|
|
equal to
|
|
|
|
.IR "(offset+count)" .
|
2005-10-19 07:07:02 +00:00
|
|
|
.BR readahead ()
|
2004-11-03 13:51:07 +00:00
|
|
|
does not read beyond the end of the file.
|
2005-10-19 07:07:02 +00:00
|
|
|
.BR readahead ()
|
2004-11-03 13:51:07 +00:00
|
|
|
blocks until the specified data has been read.
|
|
|
|
The current file offset of the open file referred to by
|
|
|
|
.I fd
|
|
|
|
is left unchanged.
|
|
|
|
.SH "RETURN VALUE"
|
|
|
|
On success,
|
2005-10-19 07:07:02 +00:00
|
|
|
.BR readahead ()
|
2004-11-03 13:51:07 +00:00
|
|
|
returns 0; on failure, \-1 is returned, with
|
|
|
|
.I errno
|
|
|
|
set to indicate the cause of the error.
|
|
|
|
.SH ERRORS
|
|
|
|
.TP
|
|
|
|
.B EBADF
|
|
|
|
.I fd
|
|
|
|
is not a valid file descriptor or is not open for reading.
|
|
|
|
.TP
|
|
|
|
.B EINVAL
|
|
|
|
.I fd
|
|
|
|
does not refer to a file type to which
|
2005-10-19 06:54:38 +00:00
|
|
|
.BR readahead ()
|
2004-11-03 13:51:07 +00:00
|
|
|
can be applied.
|
|
|
|
.SH "CONFORMING TO"
|
|
|
|
The
|
2005-10-19 07:07:02 +00:00
|
|
|
.BR readahead ()
|
2004-11-03 13:51:07 +00:00
|
|
|
system call is Linux specific, and its use should be avoided
|
|
|
|
in portable applications.
|
|
|
|
.SH NOTES
|
|
|
|
The
|
2005-10-19 07:07:02 +00:00
|
|
|
.BR readahead ()
|
2004-11-03 13:51:07 +00:00
|
|
|
system call appeared in Linux 2.4.13.
|
|
|
|
.SH "SEE ALSO"
|
|
|
|
.BR fadvise (2),
|
|
|
|
.BR lseek (2),
|
|
|
|
.BR madvise (2),
|
|
|
|
.BR mmap (2),
|
|
|
|
.BR read (2)
|