📄 close.c
字号:
#include "f2c.h"#include "fio.h"#ifdef KR_headersinteger f_clos(a) cllist *a;#else#undef abs#undef min#undef max#include "stdlib.h"#ifdef NON_UNIX_STDIO#ifndef unlink#define unlink remove#endif#else#ifdef MSDOS#include "io.h"#else#ifdef __cplusplusextern "C" int unlink(const char*);#elseextern int unlink(const char*);#endif#endif#endif#ifdef __cplusplusextern "C" {#endifinteger f_clos(cllist *a)#endif{ unit *b; if(a->cunit >= MXUNIT) return(0); b= &f__units[a->cunit]; if(b->ufd==NULL) goto done; if (b->uscrtch == 1) goto Delete; if (!a->csta) goto Keep; switch(*a->csta) { default: Keep: case 'k': case 'K': if(b->uwrt == 1) t_runc((alist *)a); if(b->ufnm) { fclose(b->ufd); free(b->ufnm); } break; case 'd': case 'D': Delete: fclose(b->ufd); if(b->ufnm) { unlink(b->ufnm); /*SYSDEP*/ free(b->ufnm); } } b->ufd=NULL; done: b->uend=0; b->ufnm=NULL; return(0); } void#ifdef KR_headersf_exit()#elsef_exit(void)#endif{ int i; static cllist xx; if (!xx.cerr) { xx.cerr=1; xx.csta=NULL; for(i=0;i<MXUNIT;i++) { xx.cunit=i; (void) f_clos(&xx); } }} int#ifdef KR_headersflush_()#elseflush_(void)#endif{ int i; for(i=0;i<MXUNIT;i++) if(f__units[i].ufd != NULL && f__units[i].uwrt) fflush(f__units[i].ufd);return 0;}#ifdef __cplusplus}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -