File:
[ELWIX - Embedded LightWeight unIX -] /
libaitio /
example /
test_aio.c
Revision
1.3:
download - view:
text,
annotated -
select for diffs -
revision graph
Wed Mar 13 14:54:38 2013 UTC (12 years, 1 month ago) by
misho
Branches:
MAIN
CVS tags:
io7_4,
io7_3,
io7_2,
io7_1,
io7_0,
io6_9,
io6_8,
io6_7,
io6_6,
io6_5,
io6_4,
io6_3,
io6_2,
io6_1,
io6_0,
io5_9,
io5_8,
io5_7,
io5_6,
io5_5,
io5_4,
io5_3,
io5_2,
io5_1,
IO7_3,
IO7_2,
IO7_1,
IO7_0,
IO6_9,
IO6_8,
IO6_7,
IO6_6,
IO6_5,
IO6_4,
IO6_3,
IO6_2,
IO6_1,
IO6_0,
IO5_9,
IO5_8,
IO5_7,
IO5_6,
IO5_5,
IO5_4,
IO5_3,
IO5_2,
IO5_1,
IO5_0,
HEAD
version 5.0
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <elwix.h>
#include <aitio.h>
int
main(int argc, char **argv)
{
int f, ret, i;
char buf[BUFSIZ];
struct iovec iv[3];
iv[0].iov_len = 10;
iv[0].iov_base = e_malloc(iv[0].iov_len);
iv[0].iov_len--;
iv[1].iov_len = 2;
iv[1].iov_base = e_malloc(iv[1].iov_len);
iv[1].iov_len--;
iv[2].iov_len = 20;
iv[2].iov_base = e_malloc(iv[2].iov_len);
iv[2].iov_len--;
f = open("test_aio.dat", O_CREAT | O_RDWR | O_TRUNC, 0644);
if (f == -1) {
perror("open");
return 1;
}
while (!feof(stdin)) {
memset(buf, 0, sizeof buf);
fgets(buf, sizeof buf, stdin);
printf("io_write=%d\n", (ret = io_write(f, buf, strlen(buf))));
if (ret == -1) {
ELIBERR(io);
return 2;
}
}
memset(buf, 0, sizeof buf);
printf("io_read=%d\n", (ret = io_rread(f, buf, sizeof buf, 0, 0)));
if (ret == -1) {
ELIBERR(io);
return 3;
}
printf("\n\n%s\n", buf);
printf("io_readv=%d\n", (ret = io_rreadv(f, iv, 3, (off_t) 0, 1)));
for (i = 0; i < 3; i++) {
printf("%d) len=%d - %s\n---\n", i, iv[i].iov_len, iv[i].iov_base);
e_free(iv[i].iov_base);
}
iv[0].iov_base = e_strdup("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n");
iv[0].iov_len = strlen(iv[0].iov_base) + 1;
iv[1].iov_base = e_strdup("bbbbbbbbbbbbbbbb\n");
iv[1].iov_len = strlen(iv[1].iov_base) + 1;
iv[2].iov_base = e_strdup("sdgnsjkfgbfgbfjhbjjjjjjjjjjjjjjjj\n");
iv[2].iov_len = strlen(iv[2].iov_base) + 1;
printf("io_writev=%d\n", (ret = io_rwritev(f, iv, 3, 0, 1)));
for (i = 0; i < 3; i++)
memset(iv[i].iov_base, 0, iv[i].iov_len);
printf("io_readv=%d\n", (ret = io_rreadv(f, iv, 3, 0, 1)));
for (i = 0; i < 3; i++) {
printf("%d) len=%d - %s\n---\n", i, iv[i].iov_len, iv[i].iov_base);
e_free(iv[i].iov_base);
}
close(f);
/*
for (i = 0; i < 3; i++)
e_free(iv[i].iov_base);
*/
return 0;
}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>