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