|
|
1.1 ! root 1: /* @(#)close.c 1.2 */ ! 2: /* 3.0 SID # 1.2 */ ! 3: #include "fio.h" ! 4: f_clos(a) cllist *a; ! 5: { unit *b; ! 6: if(a->cunit >= MXUNIT) return(0); ! 7: b= &units[a->cunit]; ! 8: if(b->ufd==NULL) return(0); ! 9: b->uend=0; ! 10: if(a->csta!=0) ! 11: switch(*a->csta) ! 12: { ! 13: default: ! 14: keep: ! 15: case 'k': ! 16: if(b->uwrt) (void) t_runc(b); ! 17: (void) fclose(b->ufd); /* sys 5 has strange beliefs */ ! 18: if(b->ufnm!=0) free(b->ufnm); ! 19: b->ufnm=NULL; ! 20: b->ufd=NULL; ! 21: return(0); ! 22: case 'd': ! 23: delete: ! 24: (void) fclose(b->ufd); ! 25: if(b->ufnm!=0) ! 26: { (void) unlink(b->ufnm); /*SYSDEP*/ ! 27: free(b->ufnm); ! 28: } ! 29: b->ufnm=NULL; ! 30: b->ufd=NULL; ! 31: return(0); ! 32: } ! 33: else if(b->uscrtch==1) goto delete; ! 34: else goto keep; ! 35: } ! 36: f_exit() ! 37: { int i; ! 38: cllist xx; ! 39: xx.cerr=1; ! 40: xx.csta=NULL; ! 41: for(i=0;i<MXUNIT;i++) ! 42: { ! 43: xx.cunit=i; ! 44: (void) f_clos(&xx); ! 45: } ! 46: } ! 47: flush_() ! 48: { int i; ! 49: for(i=0;i<MXUNIT;i++) ! 50: if(units[i].ufd != NULL) (void) fflush(units[i].ufd); ! 51: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.