#include #include #include #include typedef struct basic_file basic_FILE; struct basic_file { int fd; }; //FILE *fopen(char *path, char *mode); //ONLY CAN OPEN FILES FOR READING basic_FILE *basic_fopen(char *path) { int fd = open(path, O_RDONLY); basic_FILE *f = malloc(sizeof(basic_FILE)); f->fd = fd; return f; } int basic_fgetc(basic_FILE *f) { int c; read(f->fd, &c, 1); return c; } int main(int argc, char *argv[]) { if(argc < 2){ fprintf(stderr, "Usage %s filename\n", argv[0]); return 1; } basic_FILE *my_file = basic_fopen(argv[1]); int c = basic_fgetc(my_file); printf("%c\n", c); c = basic_fgetc(my_file); printf("%c\n", c); return 0; }