iio.c

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

C
91
字号
#include "fio.h"#include "fmt.h"char *icptr,*icend;icilist *svic;extern int rd_ed(),rd_ned(),w_ed(),w_ned(),y_err();extern int z_wnew();int icnum,icpos;z_getc(){	if(icptr >= icend) err(svic->iciend,(EOF),"endfile");	if(icpos++ < svic->icirlen)		return(*icptr++);	else	err(svic->icierr,110,"recend");}z_putc(c){	if(icptr >= icend) err(svic->icierr,110,"inwrite");	if(icpos++ < svic->icirlen)		*icptr++ = c;	else	err(svic->icierr,110,"recend");	return(0);}z_rnew(){	icptr = svic->iciunit + (++icnum)*svic->icirlen;	icpos = 0;}s_rsfi(a) icilist *a;{	int n;	if(n=c_si(a)) return(n);	reading=1;	doed=rd_ed;	doned=rd_ned;	getn=z_getc;	dorevert = donewrec = y_err;	doend = z_rnew;	return(0);}s_wsfi(a) icilist *a;{	int n;	if(n=c_si(a)) return(n);	reading=0;	doed=w_ed;	doned=w_ned;	putn=z_putc;	dorevert = donewrec = y_err;	doend = z_wnew;	return(0);}c_si(a) icilist *a;{	fmtbuf=a->icifmt;	if(pars_f(fmtbuf)<0)		err(a->icierr,100,"startint");	fmt_bg();	sequential=formatted=1;	external=0;	cblank=cplus=scale=0;	svic=a;	icnum=icpos=0;	icptr=svic->iciunit;	icend=icptr+svic->icirlen*svic->icirnum;	return(0);}z_wnew(){	while(icpos++ < svic->icirlen)		*icptr++ = ' ';	icpos = 0;	icnum++;}e_rsfi(){	int n;	n = en_fio();	fmtbuf = NULL;	return(n);}e_wsfi(){	int n;	n = en_fio();	fmtbuf = NULL;	while(icpos++ < svic->icirlen)		*icptr++ = ' ';	return(n);}y_err(){	err(elist->cierr, 110, "iio");}

⌨️ 快捷键说明

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