makbuf.c

来自「莱昂氏UNIX源代码分析UNIXv6src.tar.gz」· C语言 代码 · 共 37 行

C
37
字号
# include "ciodec.c"IEH3bsz 512;IEH3mbuf (fn, type)int fn, type;{struct fileps *fp;extern char *IEH3olbf[], *alloc();extern int IEHfbak[10];int bx[19], size, bloc;fp = &IEH3fpts[fn];fp->eoferr = fp->nchars = 0;fp->wrflag = type+1;/* decide whether to buffer or not */if (ttyn(fn) != 'x')	size = 1;elseif (fstat(fn,bx) > 0 && bx[0] == 40 && type == 0)	size = 1;else	size = IEH3bsz;for (fp->buff = 0; size >10 && fp->buff == 0; size =/ 4)		if ((bloc = alloc(size+100)) != -1)			{			IEH3olbf[fn] = bloc;			fp->buff = fp->bptr =bloc + 100;			fp->bsize = size;			break;			}if (fp->buff == 0)	{	fp->buff = fp->bptr = &IEHfbak[fn];	fp->bsize = size>1 ? 2 : 1;	}}struct fileps IEH3fpts [10];int IEHfbak[10];

⌨️ 快捷键说明

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