File:  [ELWIX - Embedded LightWeight unIX -] / libaitio / example / test_bufio.c
Revision 1.2: download - view: text, annotated - select for diffs - revision graph
Thu Feb 2 21:32:42 2012 UTC (12 years, 4 months ago) by misho
Branches: MAIN
CVS tags: 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, io4_1, io4_0, io3_9, io3_8, io3_7, io3_6, io3_5, io3_4, io3_3, io3_2, io3_1, io2_8, io2_7, io2_6, io2_5, io2_4, 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, IO4_1, IO4_0, IO3_9, IO3_8, IO3_7, IO3_6, IO3_5, IO3_4, IO3_3, IO3_2, IO3_1, IO3_0, IO2_7, IO2_6, IO2_5, IO2_4, IO2_3, HEAD
version 2.3
added feature for bufio

    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: 	f = io_fd2buf(io_dumbFile("xxx", 0644, 12345), "r+");
   17: 	fclose(f);
   18: 
   19: 	if (argc < 2)
   20: 		f = io_fmapopen(NULL, 0, 0, PROT_READ | PROT_WRITE, 0, 2000);
   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);
   30: 	memset(b, 0, sizeof b);
   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);
   41: 	memset(b, 0, sizeof b);
   42: 	fread(b, sizeof b, 1, f);
   43: 	printf("2.b=%s\n", b);
   44: 
   45: 	fclose(f);
   46: 
   47: 	// part 2
   48: 	
   49: 	f = io_fmemopen(&p, 100);
   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);
   57: 	memset(b, 0, sizeof b);
   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);
   68: 	memset(b, 0, sizeof b);
   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);
   85: 	memset(b, 0, sizeof b);
   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);
   96: 	memset(b, 0, sizeof b);
   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>