1 #include <stdio.h> 2 #include <stdlib.h> 3 #include "posixio.h" 4 #include "phio_posix.h" 5 #include "phio_base.h" 6 7 static struct phio_ops posix_ops = { 8 posix_openfile, 9 posix_closefile, 10 posix_readheader, 11 posix_writeheader, 12 posix_readdatablock, 13 posix_writedatablock, 14 posix_constructname 15 }; 16 17 void posixio_setup(phio_fp* f, char mode) { 18 *f = (phio_fp) malloc(sizeof(struct phio_file)); 19 (*f)->ops = &posix_ops; 20 if(mode != 'r' && mode != 'w') { 21 fprintf(stderr, "ERROR unsupported file mode in %s on line %d" 22 "... exiting", __FILE__, __LINE__); 23 exit(EXIT_FAILURE); 24 } 25 (*f)->file = (int*) malloc(sizeof(int*)); 26 (*f)->mode = mode; 27 } 28