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

1.2     ! misho       1: #include <stdio.h>
        !             2: #include <string.h>
        !             3: #include <unistd.h>
        !             4: #include <fcntl.h>
        !             5: #include <aitio.h>
        !             6: 
        !             7: 
        !             8: int
        !             9: main(int argc, char **argv)
        !            10: {
        !            11:        int f, ret, i;
        !            12:        char buf[BUFSIZ];
        !            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--;
        !            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: 
        !            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: 
        !            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: 
        !            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: 
        !            71:        close(f);
        !            72: 
        !            73:        /*
        !            74:        for (i = 0; i < 3; i++)
        !            75:                io_free(iv[i].iov_base);
        !            76:                */
        !            77:        return 0;
        !            78: }

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