sfdcslow.c

来自「su 的源代码库」· C语言 代码 · 共 66 行

C
66
字号
/* Copyright (c) Colorado School of Mines, 2006.*//* All rights reserved.                       */#include "sfdchdr.h"/*	Make a stream op return immediately on interrupts.**	This is useful on slow streams (hence the name).****	Written by Glenn Fowler (03/18/1998).*/#if __STD_Cstatic int slowexcept(Sfio_t* f, int type, Void_t* v, Sfdisc_t* disc)#elsestatic int slowexcept(f, type, v, disc)Sfio_t*		f;int		type;Void_t*		v;Sfdisc_t*	disc;#endif{	NOTUSED(f);	NOTUSED(v);	NOTUSED(disc);	switch (type)	{	case SF_FINAL:	case SF_DPOP:		free(disc);		break;	case SF_READ:	case SF_WRITE:		if (errno == EINTR)			return(-1);		break;	}	return(0);}#if __STD_Cint sfdcslow(Sfio_t* f)#elseint sfdcslow(f)Sfio_t*	f;#endif{	Sfdisc_t*	disc;	if(!(disc = (Sfdisc_t*)malloc(sizeof(Sfdisc_t))) )		return(-1);	disc->readf = NIL(Sfread_f);	disc->writef = NIL(Sfwrite_f);	disc->seekf = NIL(Sfseek_f);	disc->exceptf = slowexcept;	if(sfdisc(f,disc) != disc)	{	free(disc);		return(-1);	}	return(0);}

⌨️ 快捷键说明

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