|
|
1.1 ! root 1: #define FIO_IMP ! 2: #include "fio.h" ! 3: #include <libc.h> ! 4: ! 5: static Fdie() ! 6: { ! 7: Fexit(0); ! 8: } ! 9: ! 10: void ! 11: Finit(fd, buf) ! 12: char *buf; ! 13: { ! 14: register Fbuffer *f; ! 15: static setfioexit = 1; ! 16: ! 17: if(setfioexit){ ! 18: setfioexit = 0; ! 19: atexit(Fdie); ! 20: } ! 21: fd &= 0x7f; ! 22: if(buf){ ! 23: Ffb[fd] = (Fbuffer *)buf; ! 24: Ffb[fd]->flags = 0; ! 25: } else if(!Ffb[fd]){ ! 26: Ffb[fd] = (Fbuffer *)FIOMALLOC((COUNT)sizeof(Fbuffer)); ! 27: Ffb[fd]->flags = FIO_MALLOCED; ! 28: } ! 29: f = Ffb[fd]; ! 30: FIORESET(f); ! 31: f->offset = SEEK(fd, 0L, 1); ! 32: if(f->offset < 0) ! 33: f->offset = 0; /* file not been written yet */ ! 34: } ! 35: ! 36: #ifdef GNOT ! 37: #define NOFILE 128 ! 38: #endif ! 39: #ifndef GNOT ! 40: #include <sys/param.h> ! 41: #endif ! 42: ! 43: Fbuffer *Ffb[NOFILE]; ! 44: ! 45: Fexit(type) ! 46: { ! 47: register n; ! 48: ! 49: for(n = 0; n < NOFILE; n++) ! 50: if(Ffb[n]) ! 51: if(type == 0) ! 52: Fflush(n); ! 53: else ! 54: Fclose(n); ! 55: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.