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 (13 years, 2 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
#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;
}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>