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

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>