File: io_prep_pread.3

package info (click to toggle)
libaio 0.3.113-9
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,404 kB
  • sloc: ansic: 956; makefile: 150; sh: 45
file content (73 lines) | stat: -rw-r--r-- 1,718 bytes parent folder | download | duplicates (4)
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
.\" static inline void io_prep_pread(struct iocb *iocb, int fd, void *buf, size_t count, long long offset)
.\" {
.\" 	memset(iocb, 0, sizeof(*iocb));
.\" 	iocb->aio_fildes = fd;
.\" 	iocb->aio_lio_opcode = IO_CMD_PREAD;
.\" 	iocb->aio_reqprio = 0;
.\" 	iocb->u.c.buf = buf;
.\" 	iocb->u.c.nbytes = count;
.\" 	iocb->u.c.offset = offset;
.\" }
.TH io_prep_pread 3 2019-07-23 "Linux" "Linux AIO"
.SH NAME
io_prep_pread \- Set up asynchronous read
.SH SYNOPSIS
.nf
.B #include <errno.h>
.sp
.br
.B #include <libaio.h>
.br
.sp
.BI "inline void io_prep_pread(struct iocb *" iocb ", int " fd ", void *" buf ", size_t " count ", long long " offset ");"
.
.sp
struct iocb {
	void		*data;
	unsigned	key;
	short		aio_lio_opcode;
	short		aio_reqprio;
	int		aio_fildes;
};
.fi
.SH DESCRIPTION
.BR io_prep_pread ()
is an inline convenience function designed to facilitate the initialization of
the iocb for an asynchronous read operation.

The first
.I iocb->u.c.nbytes = count
bytes of the file for which
.I iocb->aio_fildes = fd
is a descriptor are written to the buffer
starting at
.IR "iocb->u.c.buf = buf" .
Reading starts at the absolute position
.I ioc->u.c.offset = offset
in the file.
.PP
This function returns immediately. To schedule the operation, the
function 
.BR io_submit (3)
must be called.
.PP
Simultaneous asynchronous operations using the same \fIiocb\fP produce
undefined results.
.SH "RETURN VALUES"
None.
.SH ERRORS
None.
.SH "SEE ALSO"
.BR io (3),
.BR io_cancel (3),
.BR io_fsync (3),
.BR io_getevents (3),
.BR io_prep_fsync (3),
.BR io_prep_pwrite (3),
.BR io_queue_init (3),
.BR io_queue_release (3),
.BR io_queue_run (3),
.BR io_queue_wait (3),
.BR io_set_callback (3),
.BR io_submit (3),
.BR errno (3).