File: io_prep_pwrite.3

package info (click to toggle)
libaio 0.3.113-8
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,404 kB
  • sloc: ansic: 956; makefile: 150; sh: 45
file content (72 lines) | stat: -rw-r--r-- 1,671 bytes parent folder | download | duplicates (3)
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).