File: io_getevents.2

package info (click to toggle)
manpages 3.27-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 12,228 kB
  • ctags: 9
  • sloc: sh: 389; perl: 164; makefile: 77; lisp: 22
file content (122 lines) | stat: -rw-r--r-- 3,105 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
.\" Copyright (C) 2003 Free Software Foundation, Inc.
.\" This file is distributed according to the GNU General Public License.
.\" See the file COPYING in the top level source directory for details.
.\"
.\" .de Sh \" Subsection
.\" .br
.\" .if t .Sp
.\" .ne 5
.\" .PP
.\" \fB\\$1\fP
.\" .PP
.\" ..
.\" .de Sp \" Vertical space (when we can't use .PP)
.\" .if t .sp .5v
.\" .if n .sp
.\" ..
.\" .de Ip \" List item
.\" .br
.\" .ie \\n(.$>=3 .ne \\$3
.\" .el .ne 3
.\" .IP "\\$1" \\$2
.\" ..
.TH IO_GETEVENTS 2 2008-07-04 "Linux" "Linux Programmer's Manual"
.SH NAME
io_getevents \- read asynchronous I/O events from the completion queue
.SH "SYNOPSIS"
.nf
.\" .ad l
.\" .hy 0
.B #include <linux/time.h>
.B #include <libaio.h>
.\" #include <linux/aio.h>
.sp
.\" .HP 19
.BI "int io_getevents(aio_context_t " ctx_id ", long " min_nr ", long " nr ,
.BI "                 struct io_event *" events \
", struct timespec *" timeout );
.\" .ad
.\" .hy
.sp
Link with \fI\-laio\fP.
.fi
.SH "DESCRIPTION"
.PP
.BR io_getevents ()
attempts to read at least \fImin_nr\fP events and
up to \fInr\fP events from the completion queue of the AIO context
specified by \fIctx_id\fP.
\fItimeout\fP specifies the amount of time to wait for events,
where a NULL timeout waits until at least \fImin_nr\fP events
have been seen.
Note that \fItimeout\fP is relative and will be updated if not NULL
and the operation blocks.
.SH "RETURN VALUE"
On success,
.BR io_getevents ()
returns the number of events read: 0 if no events are
available, or less than \fImin_nr\fP if the \fItimeout\fP has elapsed.
For the failure return, see NOTES.
.SH "ERRORS"
.TP
.B EFAULT
Either \fIevents\fP or \fItimeout\fP is an invalid pointer.
.TP
.B EINVAL
\fIctx_id\fP is invalid.
\fImin_nr\fP is out of range or \fInr\fP is
out of range.
.TP
.B EINTR
Interrupted by a signal handler; see
.BR signal (7).
.TP
.B ENOSYS
.BR io_getevents ()
is not implemented on this architecture.
.SH "VERSIONS"
.PP
The asynchronous I/O system calls first appeared in Linux 2.5, August 2002.
.SH "CONFORMING TO"
.PP
.BR io_getevents ()
is Linux-specific and should not be used in
programs that are intended to be portable.
.SH NOTES
Glibc does not provide a wrapper function for this system call.

The wrapper provided in
.I libaio
for
.BR io_getevents ()
does not follow the usual C library conventions for indicating error:
on error it returns a negated error number
(the negative of one of the values listed in ERRORS).
If the system call is invoked via
.BR syscall (2),
then the return value follows the usual conventions for
indicating an error: \-1, with
.I errno
set to a (positive) value that indicates the error.
.SH "SEE ALSO"
.PP
.BR io_cancel (2),
.BR io_destroy (2),
.BR io_setup (2),
.BR io_submit (2),
.BR time (7)
.\" .SH "NOTES"
.\"
.\" .PP
.\" The asynchronous I/O system calls were written by Benjamin LaHaise.
.\"
.\" .SH AUTHOR
.\" Kent Yoder.
.SH COLOPHON
This page is part of release 3.27 of the Linux
.I man-pages
project.
A description of the project,
and information about reporting bugs,
can be found at
http://www.kernel.org/doc/man-pages/.