close.c

来自「unix v7是最后一个广泛发布的研究型UNIX版本」· C语言 代码 · 共 50 行

C
50
字号
#include "fio.h"f_clos(a) cllist *a;{	unit *b;	if(a->cunit >= MXUNIT) return(0);	b= &units[a->cunit];	if(b->ufd==NULL) return(0);	b->uend=0;	if(a->csta!=0)		switch(*a->csta)		{		default:		keep:		case 'k':			if(b->uwrt) t_runc(b);			fclose(b->ufd);			if(b->ufnm!=0) free(b->ufnm);			b->ufnm=NULL;			b->ufd=NULL;			return(0);		case 'd':		delete:			fclose(b->ufd);			if(b->ufnm!=0)			{	unlink(b->ufnm); /*SYSDEP*/				free(b->ufnm);			}			b->ufnm=NULL;			b->ufd=NULL;			return(0);		}	else if(b->uscrtch==1) goto delete;	else goto keep;}f_exit(){	int i;	cllist xx;	xx.cerr=1;	xx.csta=NULL;	for(i=0;i<MXUNIT;i++)	{		xx.cunit=i;		f_clos(&xx);	}}flush_(){	int i;	for(i=0;i<MXUNIT;i++)		if(units[i].ufd != NULL) fflush(units[i].ufd);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?