version 1.1, 2012/02/02 15:32:02
|
version 1.2, 2012/02/02 21:32:42
|
Line 0
|
Line 1
|
|
#include <stdio.h> |
|
#include <stdlib.h> |
|
#include <string.h> |
|
#include <fcntl.h> |
|
#include <sys/mman.h> |
|
#include <aitio.h> |
|
|
|
|
|
int |
|
main(int argc, char **argv) |
|
{ |
|
FILE *f; |
|
char b[BUFSIZ]; |
|
void *p = NULL; |
|
|
|
f = io_fd2buf(io_dumbFile("xxx", 0644, 12345), "r+"); |
|
fclose(f); |
|
|
|
if (argc < 2) |
|
f = io_fmapopen(NULL, 0, 0, PROT_READ | PROT_WRITE, 0, 2000); |
|
else |
|
f = io_fmapopen(argv[1], O_RDWR, 0, PROT_READ | PROT_WRITE, MAP_SHARED, 0); |
|
if (!f) { |
|
printf("Error:: #%d - %s\n", io_GetErrno(), io_GetError()); |
|
return 1; |
|
} |
|
|
|
fwrite("123456789", 10, 1, f); |
|
fseek(f, 0, SEEK_SET); |
|
memset(b, 0, sizeof b); |
|
fread(b, sizeof b, 1, f); |
|
printf("b=%s\n", b); |
|
// fread(b, sizeof b, 1, f); |
|
fwrite("***", 4, 1, f); |
|
fwrite("*|\n", 3, 1, f); |
|
fseek(f, 100, SEEK_CUR); |
|
fwrite("oOo", 3, 1, f); |
|
fseek(f, -10, SEEK_END); |
|
fwrite("123456789", 10, 1, f); |
|
fseek(f, -10, SEEK_END); |
|
memset(b, 0, sizeof b); |
|
fread(b, sizeof b, 1, f); |
|
printf("2.b=%s\n", b); |
|
|
|
fclose(f); |
|
|
|
// part 2 |
|
|
|
f = io_fmemopen(&p, 100); |
|
if (!f) { |
|
printf("Error:: #%d - %s\n", io_GetErrno(), io_GetError()); |
|
return 2; |
|
} |
|
|
|
fwrite("123456789", 10, 1, f); |
|
fseek(f, 0, SEEK_SET); |
|
memset(b, 0, sizeof b); |
|
fread(b, sizeof b, 1, f); |
|
printf("b=%s\n", b); |
|
// fread(b, sizeof b, 1, f); |
|
fwrite("***", 4, 1, f); |
|
fwrite("*|\n", 3, 1, f); |
|
fseek(f, 100, SEEK_CUR); |
|
fwrite("oOo", 3, 1, f); |
|
fseek(f, -10, SEEK_END); |
|
fwrite("123456789", 10, 1, f); |
|
fseek(f, -10, SEEK_END); |
|
memset(b, 0, sizeof b); |
|
fread(b, sizeof b, 1, f); |
|
printf("2.b=%s\n", b); |
|
|
|
fclose(f); |
|
|
|
// part 3 |
|
|
|
p = malloc(10000); |
|
f = io_fmemopen(&p, 10000); |
|
if (!f) { |
|
printf("Error:: #%d - %s\n", io_GetErrno(), io_GetError()); |
|
return 3; |
|
} |
|
|
|
fwrite("123456789", 10, 1, f); |
|
fseek(f, 0, SEEK_SET); |
|
memset(b, 0, sizeof b); |
|
fread(b, sizeof b, 1, f); |
|
printf("b=%s\n", b); |
|
// fread(b, sizeof b, 1, f); |
|
fwrite("***", 4, 1, f); |
|
fwrite("*|\n", 3, 1, f); |
|
fseek(f, 100, SEEK_CUR); |
|
fwrite("oOo", 3, 1, f); |
|
fseek(f, -10, SEEK_END); |
|
fwrite("123456789", 10, 1, f); |
|
fseek(f, -10, SEEK_END); |
|
memset(b, 0, sizeof b); |
|
fread(b, sizeof b, 1, f); |
|
printf("2.b=%s\n", b); |
|
|
|
fclose(f); |
|
free(p); |
|
|
|
return 0; |
|
} |