Annotation of libaitio/example/test_bufio.c, revision 1.1.2.2
1.1.2.1 misho 1: #include <stdio.h>
1.1.2.2 ! misho 2: #include <stdlib.h>
! 3: #include <string.h>
1.1.2.1 misho 4: #include <fcntl.h>
5: #include <sys/mman.h>
6: #include <aitio.h>
7:
8:
9: int
10: main(int argc, char **argv)
11: {
12: FILE *f;
13: char b[BUFSIZ];
14: void *p = NULL;
15:
16: if (argc < 2)
1.1.2.2 ! misho 17: f = io_fmapopen(NULL, 0, 0, PROT_READ | PROT_WRITE, 0, 2000);
1.1.2.1 misho 18: else
19: f = io_fmapopen(argv[1], O_RDWR, 0, PROT_READ | PROT_WRITE, MAP_SHARED, 0);
20: if (!f) {
21: printf("Error:: #%d - %s\n", io_GetErrno(), io_GetError());
22: return 1;
23: }
24:
25: fwrite("123456789", 10, 1, f);
26: fseek(f, 0, SEEK_SET);
1.1.2.2 ! misho 27: memset(b, 0, sizeof b);
1.1.2.1 misho 28: fread(b, sizeof b, 1, f);
29: printf("b=%s\n", b);
30: // fread(b, sizeof b, 1, f);
31: fwrite("***", 4, 1, f);
32: fwrite("*|\n", 3, 1, f);
33: fseek(f, 100, SEEK_CUR);
34: fwrite("oOo", 3, 1, f);
35: fseek(f, -10, SEEK_END);
36: fwrite("123456789", 10, 1, f);
37: fseek(f, -10, SEEK_END);
1.1.2.2 ! misho 38: memset(b, 0, sizeof b);
1.1.2.1 misho 39: fread(b, sizeof b, 1, f);
40: printf("2.b=%s\n", b);
41:
42: fclose(f);
43:
44: // part 2
45:
1.1.2.2 ! misho 46: f = io_fmemopen(&p, 100);
1.1.2.1 misho 47: if (!f) {
48: printf("Error:: #%d - %s\n", io_GetErrno(), io_GetError());
49: return 2;
50: }
51:
52: fwrite("123456789", 10, 1, f);
53: fseek(f, 0, SEEK_SET);
1.1.2.2 ! misho 54: memset(b, 0, sizeof b);
1.1.2.1 misho 55: fread(b, sizeof b, 1, f);
56: printf("b=%s\n", b);
57: // fread(b, sizeof b, 1, f);
58: fwrite("***", 4, 1, f);
59: fwrite("*|\n", 3, 1, f);
60: fseek(f, 100, SEEK_CUR);
61: fwrite("oOo", 3, 1, f);
62: fseek(f, -10, SEEK_END);
63: fwrite("123456789", 10, 1, f);
64: fseek(f, -10, SEEK_END);
1.1.2.2 ! misho 65: memset(b, 0, sizeof b);
1.1.2.1 misho 66: fread(b, sizeof b, 1, f);
67: printf("2.b=%s\n", b);
68:
69: fclose(f);
70:
71: // part 3
72:
73: p = malloc(10000);
74: f = io_fmemopen(&p, 10000);
75: if (!f) {
76: printf("Error:: #%d - %s\n", io_GetErrno(), io_GetError());
77: return 3;
78: }
79:
80: fwrite("123456789", 10, 1, f);
81: fseek(f, 0, SEEK_SET);
1.1.2.2 ! misho 82: memset(b, 0, sizeof b);
1.1.2.1 misho 83: fread(b, sizeof b, 1, f);
84: printf("b=%s\n", b);
85: // fread(b, sizeof b, 1, f);
86: fwrite("***", 4, 1, f);
87: fwrite("*|\n", 3, 1, f);
88: fseek(f, 100, SEEK_CUR);
89: fwrite("oOo", 3, 1, f);
90: fseek(f, -10, SEEK_END);
91: fwrite("123456789", 10, 1, f);
92: fseek(f, -10, SEEK_END);
1.1.2.2 ! misho 93: memset(b, 0, sizeof b);
1.1.2.1 misho 94: fread(b, sizeof b, 1, f);
95: printf("2.b=%s\n", b);
96:
97: fclose(f);
98: free(p);
99:
100: return 0;
101: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>