File:
[ELWIX - Embedded LightWeight unIX -] /
libaitio /
example /
test_aio.c
Revision
1.2:
download - view:
text,
annotated -
select for diffs -
revision graph
Thu Aug 2 00:47:46 2012 UTC (11 years, 11 months ago) by
misho
Branches:
MAIN
CVS tags:
io5_0,
io4_1,
io4_0,
io3_9,
io3_8,
io3_7,
io3_6,
IO4_1,
IO4_0,
IO3_9,
IO3_8,
IO3_7,
IO3_6,
IO3_5,
HEAD
version 3.5
1: #include <stdio.h>
2: #include <string.h>
3: #include <unistd.h>
4: #include <fcntl.h>
5: #include <aitio.h>
6:
7:
8: int
9: main(int argc, char **argv)
10: {
11: int f, ret, i;
12: char buf[BUFSIZ];
13: struct iovec iv[3];
14:
15: iv[0].iov_len = 10;
16: iv[0].iov_base = io_malloc(iv[0].iov_len);
17: iv[0].iov_len--;
18: iv[1].iov_len = 2;
19: iv[1].iov_base = io_malloc(iv[1].iov_len);
20: iv[1].iov_len--;
21: iv[2].iov_len = 20;
22: iv[2].iov_base = io_malloc(iv[2].iov_len);
23: iv[2].iov_len--;
24:
25: f = open("test_aio.dat", O_CREAT | O_RDWR | O_TRUNC, 0644);
26: if (f == -1) {
27: perror("open");
28: return 1;
29: }
30:
31: while (!feof(stdin)) {
32: memset(buf, 0, sizeof buf);
33: fgets(buf, sizeof buf, stdin);
34: printf("io_write=%d\n", (ret = io_write(f, buf, strlen(buf))));
35: if (ret == -1) {
36: ioLIBERR(io);
37: return 2;
38: }
39: }
40:
41: memset(buf, 0, sizeof buf);
42: printf("io_read=%d\n", (ret = io_rread(f, buf, sizeof buf, 0, 0)));
43: if (ret == -1) {
44: ioLIBERR(io);
45: return 3;
46: }
47: printf("\n\n%s\n", buf);
48:
49: printf("io_readv=%d\n", (ret = io_rreadv(f, iv, 3, (off_t) 0, 1)));
50: for (i = 0; i < 3; i++) {
51: printf("%d) len=%d - %s\n---\n", i, iv[i].iov_len, iv[i].iov_base);
52: io_free(iv[i].iov_base);
53: }
54:
55: iv[0].iov_base = io_strdup("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n");
56: iv[0].iov_len = strlen(iv[0].iov_base) + 1;
57: iv[1].iov_base = io_strdup("bbbbbbbbbbbbbbbb\n");
58: iv[1].iov_len = strlen(iv[1].iov_base) + 1;
59: iv[2].iov_base = io_strdup("sdgnsjkfgbfgbfjhbjjjjjjjjjjjjjjjj\n");
60: iv[2].iov_len = strlen(iv[2].iov_base) + 1;
61: printf("io_writev=%d\n", (ret = io_rwritev(f, iv, 3, 0, 1)));
62: for (i = 0; i < 3; i++)
63: memset(iv[i].iov_base, 0, iv[i].iov_len);
64:
65: printf("io_readv=%d\n", (ret = io_rreadv(f, iv, 3, 0, 1)));
66: for (i = 0; i < 3; i++) {
67: printf("%d) len=%d - %s\n---\n", i, iv[i].iov_len, iv[i].iov_base);
68: io_free(iv[i].iov_base);
69: }
70:
71: close(f);
72:
73: /*
74: for (i = 0; i < 3; i++)
75: io_free(iv[i].iov_base);
76: */
77: return 0;
78: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>