Annotation of libaitio/example/test_aio.c, revision 1.1.2.4
1.1.2.1 misho 1: #include <stdio.h>
1.1.2.2 misho 2: #include <string.h>
1.1.2.1 misho 3: #include <unistd.h>
4: #include <fcntl.h>
5: #include <aitio.h>
6:
7:
8: int
9: main(int argc, char **argv)
10: {
1.1.2.4 ! misho 11: int f, ret, i;
1.1.2.2 misho 12: char buf[BUFSIZ];
1.1.2.4 ! misho 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--;
1.1.2.1 misho 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:
1.1.2.2 misho 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:
1.1.2.3 misho 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:
1.1.2.4 ! misho 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:
1.1.2.1 misho 71: close(f);
1.1.2.4 ! misho 72:
! 73: /*
! 74: for (i = 0; i < 3; i++)
! 75: io_free(iv[i].iov_base);
! 76: */
1.1.2.1 misho 77: return 0;
78: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>