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

1.2       misho       1: #include <stdio.h>
                      2: #include <string.h>
                      3: #include <unistd.h>
                      4: #include <fcntl.h>
1.3     ! 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.3     ! 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.3     ! 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.3     ! 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.3     ! 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.3     ! 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.3     ! misho      53:                e_free(iv[i].iov_base);
1.2       misho      54:        }
                     55: 
1.3     ! 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.3     ! 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.3     ! 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.3     ! 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.3     ! misho      76:                e_free(iv[i].iov_base);
1.2       misho      77:                */
                     78:        return 0;
                     79: }

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