Commit | Line | Data |
---|---|---|
7ae6c0ab TL |
1 | #include "fio.h" |
2 | f_clos(a) cllist *a; | |
3 | { unit *b; | |
4 | if(a->cunit >= MXUNIT) return(0); | |
5 | b= &units[a->cunit]; | |
6 | if(b->ufd==NULL) return(0); | |
7 | b->uend=0; | |
8 | if(a->csta!=0) | |
9 | switch(*a->csta) | |
10 | { | |
11 | default: | |
12 | keep: | |
13 | case 'k': | |
14 | if(b->uwrt) t_runc(b); | |
15 | fclose(b->ufd); | |
16 | if(b->ufnm!=0) free(b->ufnm); | |
17 | b->ufnm=NULL; | |
18 | b->ufd=NULL; | |
19 | return(0); | |
20 | case 'd': | |
21 | delete: | |
22 | fclose(b->ufd); | |
23 | if(b->ufnm!=0) | |
24 | { unlink(b->ufnm); /*SYSDEP*/ | |
25 | free(b->ufnm); | |
26 | } | |
27 | b->ufnm=NULL; | |
28 | b->ufd=NULL; | |
29 | return(0); | |
30 | } | |
31 | else if(b->uscrtch==1) goto delete; | |
32 | else goto keep; | |
33 | } | |
34 | f_exit() | |
35 | { int i; | |
36 | cllist xx; | |
37 | xx.cerr=1; | |
38 | xx.csta=NULL; | |
39 | for(i=0;i<MXUNIT;i++) | |
40 | { | |
41 | xx.cunit=i; | |
42 | f_clos(&xx); | |
43 | } | |
44 | } | |
45 | flush_() | |
46 | { int i; | |
47 | for(i=0;i<MXUNIT;i++) | |
48 | if(units[i].ufd != NULL) fflush(units[i].ufd); | |
49 | } |