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
|
./" 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 2002-09-12 "Linux 2.4" Linux AIO"
.SH NAME
io_prep_pread \- Set up asynchronous read
.SH SYNOPSYS
.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
.IR io_prep_pread
is an inline convenience function designed to facilitate the initialization of
the iocb for an asynchronous read operation.
The first
.TP
.IR "iocb->u.c.nbytes = count"
bytes of the file for which
.TP
.IR "iocb->aio_fildes = fd"
is a descriptor are written to the buffer
starting at
.TP
.IR "iocb->u.c.buf = buf"
.
.br
Reading starts at the absolute position
.TP
.IR "ioc->u.c.offset = offset"
in the file.
.PP
This function returns immediately . To schedule the operation, the
function
.IR io_submit
must be called.
.PP
Simultaneous asynchronous operations using the same iocb 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)
|