Blame


1 cfa37a7b 2004-04-10 devnull .TH READV 3
2 cfa37a7b 2004-04-10 devnull .SH NAME
3 cfa37a7b 2004-04-10 devnull readv, writev, preadv, pwritev \- scatter/gather read and write
4 cfa37a7b 2004-04-10 devnull .SH SYNOPSIS
5 cfa37a7b 2004-04-10 devnull .B #include <u.h>
6 cfa37a7b 2004-04-10 devnull .br
7 cfa37a7b 2004-04-10 devnull .B #include <libc.h>
8 cfa37a7b 2004-04-10 devnull .PP
9 cfa37a7b 2004-04-10 devnull .nf
10 cfa37a7b 2004-04-10 devnull .ft L
11 cfa37a7b 2004-04-10 devnull typedef
12 cfa37a7b 2004-04-10 devnull struct IOchunk
13 cfa37a7b 2004-04-10 devnull {
14 cfa37a7b 2004-04-10 devnull void *addr;
15 cfa37a7b 2004-04-10 devnull ulong len;
16 cfa37a7b 2004-04-10 devnull } IOchunk;
17 cfa37a7b 2004-04-10 devnull .fi
18 cfa37a7b 2004-04-10 devnull .PP
19 cfa37a7b 2004-04-10 devnull .B
20 cfa37a7b 2004-04-10 devnull long readv(int fd, IOchunk *io, int nio)
21 cfa37a7b 2004-04-10 devnull .PP
22 cfa37a7b 2004-04-10 devnull .B
23 cfa37a7b 2004-04-10 devnull long preadv(int fd, IOchunk *io, int nio, vlong off)
24 cfa37a7b 2004-04-10 devnull .PP
25 cfa37a7b 2004-04-10 devnull .B
26 cfa37a7b 2004-04-10 devnull long writev(int fd, IOchunk *io, int nio)
27 cfa37a7b 2004-04-10 devnull .PP
28 cfa37a7b 2004-04-10 devnull .B
29 cfa37a7b 2004-04-10 devnull long pwritev(int fd, IOchunk *io, int nio, vlong off)
30 cfa37a7b 2004-04-10 devnull .SH DESCRIPTION
31 cfa37a7b 2004-04-10 devnull These functions supplement the standard read and write operations of
32 bf8a59fa 2004-04-11 devnull .IR read (3)
33 cfa37a7b 2004-04-10 devnull with facilities for scatter/gather I/O.
34 cfa37a7b 2004-04-10 devnull The set of I/O buffers is collected into an array of
35 cfa37a7b 2004-04-10 devnull .B IOchunk
36 cfa37a7b 2004-04-10 devnull structures passed as an argument.
37 cfa37a7b 2004-04-10 devnull .PP
38 cfa37a7b 2004-04-10 devnull .I Readv
39 cfa37a7b 2004-04-10 devnull reads data from
40 cfa37a7b 2004-04-10 devnull .I fd
41 cfa37a7b 2004-04-10 devnull and returns the total number of bytes received.
42 cfa37a7b 2004-04-10 devnull The received data is stored in the successive
43 cfa37a7b 2004-04-10 devnull .I nio
44 cfa37a7b 2004-04-10 devnull elements of the
45 cfa37a7b 2004-04-10 devnull .B IOchunk
46 cfa37a7b 2004-04-10 devnull array, storing
47 cfa37a7b 2004-04-10 devnull .IB io [0].len
48 cfa37a7b 2004-04-10 devnull bytes at
49 cfa37a7b 2004-04-10 devnull .IB io [0].addr\f1,
50 cfa37a7b 2004-04-10 devnull the next
51 cfa37a7b 2004-04-10 devnull .IB io [1].len
52 cfa37a7b 2004-04-10 devnull at
53 cfa37a7b 2004-04-10 devnull .IB io [1].addr\f1,
54 cfa37a7b 2004-04-10 devnull and so on.
55 cfa37a7b 2004-04-10 devnull .I Preadv
56 cfa37a7b 2004-04-10 devnull does the same, but implicitly seeks to I/O offset
57 cfa37a7b 2004-04-10 devnull .I off
58 cfa37a7b 2004-04-10 devnull by analogy with
59 cfa37a7b 2004-04-10 devnull .IR readv .
60 cfa37a7b 2004-04-10 devnull .PP
61 cfa37a7b 2004-04-10 devnull .I Writev
62 cfa37a7b 2004-04-10 devnull and
63 cfa37a7b 2004-04-10 devnull .I pwritev
64 cfa37a7b 2004-04-10 devnull are the analogous write routines.
65 cfa37a7b 2004-04-10 devnull .SH SOURCE
66 b5fdffee 2004-04-19 devnull .B /usr/local/plan9/src/libc/9sys/readv.c
67 cfa37a7b 2004-04-10 devnull .br
68 b5fdffee 2004-04-19 devnull .B /usr/local/plan9/src/libc/9sys/writev.c
69 cfa37a7b 2004-04-10 devnull .SH SEE ALSO
70 bf8a59fa 2004-04-11 devnull .IR intro (3),
71 bf8a59fa 2004-04-11 devnull .IR read (3)
72 cfa37a7b 2004-04-10 devnull .SH DIAGNOSTICS
73 cfa37a7b 2004-04-10 devnull These functions set
74 cfa37a7b 2004-04-10 devnull .IR errstr .
75 cfa37a7b 2004-04-10 devnull .SH BUGS
76 cfa37a7b 2004-04-10 devnull The implementations use
77 bf8a59fa 2004-04-11 devnull .IR malloc (3)
78 cfa37a7b 2004-04-10 devnull to build a single buffer for a standard call to
79 cfa37a7b 2004-04-10 devnull .B read
80 cfa37a7b 2004-04-10 devnull or
81 cfa37a7b 2004-04-10 devnull .BR write .
82 cfa37a7b 2004-04-10 devnull They are placeholders for possible future system calls.