|
|
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.