Annotation of libaitio/example/test_aio.c, revision 1.2.14.1
1.2 misho 1: #include <stdio.h>
2: #include <string.h>
3: #include <unistd.h>
4: #include <fcntl.h>
1.2.14.1! misho 5: #include <elwix.h>
1.2 misho 6: #include <aitio.h>
7:
8:
9: int
10: main(int argc, char **argv)
11: {
12: int f, ret, i;
13: char buf[BUFSIZ];
14: struct iovec iv[3];
15:
16: iv[0].iov_len = 10;
1.2.14.1! misho 17: iv[0].iov_base = e_malloc(iv[0].iov_len);
1.2 misho 18: iv[0].iov_len--;
19: iv[1].iov_len = 2;
1.2.14.1! misho 20: iv[1].iov_base = e_malloc(iv[1].iov_len);
1.2 misho 21: iv[1].iov_len--;
22: iv[2].iov_len = 20;
1.2.14.1! misho 23: iv[2].iov_base = e_malloc(iv[2].iov_len);
1.2 misho 24: iv[2].iov_len--;
25:
26: f = open("test_aio.dat", O_CREAT | O_RDWR | O_TRUNC, 0644);
27: if (f == -1) {
28: perror("open");
29: return 1;
30: }
31:
32: while (!feof(stdin)) {
33: memset(buf, 0, sizeof buf);
34: fgets(buf, sizeof buf, stdin);
35: printf("io_write=%d\n", (ret = io_write(f, buf, strlen(buf))));
36: if (ret == -1) {
1.2.14.1! misho 37: ELIBERR(io);
1.2 misho 38: return 2;
39: }
40: }
41:
42: memset(buf, 0, sizeof buf);
43: printf("io_read=%d\n", (ret = io_rread(f, buf, sizeof buf, 0, 0)));
44: if (ret == -1) {
1.2.14.1! misho 45: ELIBERR(io);
1.2 misho 46: return 3;
47: }
48: printf("\n\n%s\n", buf);
49:
50: printf("io_readv=%d\n", (ret = io_rreadv(f, iv, 3, (off_t) 0, 1)));
51: for (i = 0; i < 3; i++) {
52: printf("%d) len=%d - %s\n---\n", i, iv[i].iov_len, iv[i].iov_base);
1.2.14.1! misho 53: e_free(iv[i].iov_base);
1.2 misho 54: }
55:
1.2.14.1! misho 56: iv[0].iov_base = e_strdup("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n");
1.2 misho 57: iv[0].iov_len = strlen(iv[0].iov_base) + 1;
1.2.14.1! misho 58: iv[1].iov_base = e_strdup("bbbbbbbbbbbbbbbb\n");
1.2 misho 59: iv[1].iov_len = strlen(iv[1].iov_base) + 1;
1.2.14.1! misho 60: iv[2].iov_base = e_strdup("sdgnsjkfgbfgbfjhbjjjjjjjjjjjjjjjj\n");
1.2 misho 61: iv[2].iov_len = strlen(iv[2].iov_base) + 1;
62: printf("io_writev=%d\n", (ret = io_rwritev(f, iv, 3, 0, 1)));
63: for (i = 0; i < 3; i++)
64: memset(iv[i].iov_base, 0, iv[i].iov_len);
65:
66: printf("io_readv=%d\n", (ret = io_rreadv(f, iv, 3, 0, 1)));
67: for (i = 0; i < 3; i++) {
68: printf("%d) len=%d - %s\n---\n", i, iv[i].iov_len, iv[i].iov_base);
1.2.14.1! misho 69: e_free(iv[i].iov_base);
1.2 misho 70: }
71:
72: close(f);
73:
74: /*
75: for (i = 0; i < 3; i++)
1.2.14.1! misho 76: e_free(iv[i].iov_base);
1.2 misho 77: */
78: return 0;
79: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>