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
|
.\" static inline void io_prep_pwrite(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_PWRITE;
.\" iocb->aio_reqprio = 0;
.\" iocb->u.c.buf = buf;
.\" iocb->u.c.nbytes = count;
.\" iocb->u.c.offset = offset;
.\" }
.TH io_prep_pwrite 3 2019-07-23 "Linux" "Linux AIO"
.SH NAME
io_prep_pwrite \- Set up iocb for asynchronous writes
.SH SYNOPSIS
.nf
.B #include <errno.h>
.br
.sp
.B #include <libaio.h>
.br
.sp
.BI "inline void io_prep_pwrite(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_write ()
is a convenience function for setting up parallel writes.
The first
.IR "iocb->u.c.nbytes = count"
bytes of the file for which
.IR "iocb->aio_fildes = fd"
is a descriptor are written from the buffer
starting at
.IR "iocb->u.c.buf = buf" .
Writing starts at the absolute position
.IR "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 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_pread (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).
|