Annotation of libaitio/example/test_aio.c, revision 1.1.2.5

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>
1.1.2.5 ! misho       6: #include <sys/uio.h>
1.1.2.1   misho       7: 
                      8: 
                      9: int
                     10: main(int argc, char **argv)
                     11: {
1.1.2.4   misho      12:        int f, ret, i;
1.1.2.2   misho      13:        char buf[BUFSIZ];
1.1.2.4   misho      14:        struct iovec iv[3];
                     15: 
                     16:        iv[0].iov_len = 10;
                     17:        iv[0].iov_base = io_malloc(iv[0].iov_len);
                     18:        iv[0].iov_len--;
                     19:        iv[1].iov_len = 2;
                     20:        iv[1].iov_base = io_malloc(iv[1].iov_len);
                     21:        iv[1].iov_len--;
                     22:        iv[2].iov_len = 20;
                     23:        iv[2].iov_base = io_malloc(iv[2].iov_len);
                     24:        iv[2].iov_len--;
1.1.2.1   misho      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: 
1.1.2.2   misho      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) {
                     37:                        ioLIBERR(io);
                     38:                        return 2;
                     39:                }
                     40:        }
                     41: 
1.1.2.3   misho      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) {
                     45:                ioLIBERR(io);
                     46:                return 3;
                     47:        }
                     48:        printf("\n\n%s\n", buf);
                     49: 
1.1.2.4   misho      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);
                     53:                io_free(iv[i].iov_base);
                     54:        }
                     55: 
                     56:        iv[0].iov_base = io_strdup("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n");
                     57:        iv[0].iov_len = strlen(iv[0].iov_base) + 1;
                     58:        iv[1].iov_base = io_strdup("bbbbbbbbbbbbbbbb\n");
                     59:        iv[1].iov_len = strlen(iv[1].iov_base) + 1;
                     60:        iv[2].iov_base = io_strdup("sdgnsjkfgbfgbfjhbjjjjjjjjjjjjjjjj\n");
                     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);
                     69:                io_free(iv[i].iov_base);
                     70:        }
                     71: 
1.1.2.1   misho      72:        close(f);
1.1.2.4   misho      73: 
                     74:        /*
                     75:        for (i = 0; i < 3; i++)
                     76:                io_free(iv[i].iov_base);
                     77:                */
1.1.2.1   misho      78:        return 0;
                     79: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>