File:  [ELWIX - Embedded LightWeight unIX -] / libaitio / example / test_bufio.c
Revision 1.1.2.2: download - view: text, annotated - select for diffs - revision graph
Thu Feb 2 15:36:41 2012 UTC (12 years, 6 months ago) by misho
Branches: io2_3
add small size init block for infinit mode

    1: #include <stdio.h>
    2: #include <stdlib.h>
    3: #include <string.h>
    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)
   17: 		f = io_fmapopen(NULL, 0, 0, PROT_READ | PROT_WRITE, 0, 2000);
   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);
   27: 	memset(b, 0, sizeof b);
   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);
   38: 	memset(b, 0, sizeof b);
   39: 	fread(b, sizeof b, 1, f);
   40: 	printf("2.b=%s\n", b);
   41: 
   42: 	fclose(f);
   43: 
   44: 	// part 2
   45: 	
   46: 	f = io_fmemopen(&p, 100);
   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);
   54: 	memset(b, 0, sizeof b);
   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);
   65: 	memset(b, 0, sizeof b);
   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);
   82: 	memset(b, 0, sizeof b);
   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);
   93: 	memset(b, 0, sizeof b);
   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>