File: io_prep_pwrite.3

package info (click to toggle)
libaio 0.3.110-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,132 kB
  • ctags: 749
  • sloc: ansic: 1,931; makefile: 195; sh: 14
file content (71 lines) | stat: -rw-r--r-- 1,670 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
.\" 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 2009-06-10 "Linux 2.4" Linux AIO"
.SH NAME
io_prep_pwrite \- Set up iocb for asynchronous writes
.SH SYNOPSYS
.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
\fBio_prep_write\fP is a convenicence 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
.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_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).