⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sfset.c

📁 su 的源代码库
💻 C
字号:
/* Copyright (c) Colorado School of Mines, 2006.*//* All rights reserved.                       */#include	"sfhdr.h"/*	Set some control flags or file descript for the stream****	Written by Kiem-Phong Vo.*/#if __STD_Cint sfset(reg Sfio_t* f, reg int flags, reg int set)#elseint sfset(f,flags,set)reg Sfio_t*	f;reg int		flags;reg int		set;#endif{	reg int	oflags;	SFMTXSTART(f,0);	if(flags == 0 && set == 0)		SFMTXRETURN(f, (f->flags&SF_FLAGS));	if((oflags = (f->mode&SF_RDWR)) != (int)f->mode && _sfmode(f,oflags,0) < 0)		SFMTXRETURN(f, 0);	if(flags == 0)		SFMTXRETURN(f, (f->flags&SF_FLAGS));	SFLOCK(f,0);	/* preserve at least one rd/wr flag */	oflags = f->flags;	if(!(f->bits&SF_BOTH) || (flags&SF_RDWR) == SF_RDWR )		flags &= ~SF_RDWR;	/* set the flag */	if(set)		f->flags |=  (flags&SF_SETS);	else	f->flags &= ~(flags&SF_SETS);	/* must have at least one of read/write */	if(!(f->flags&SF_RDWR))		f->flags |= (oflags&SF_RDWR);	if(f->extent < 0)		f->flags &= ~SF_APPENDWR;	/* turn to appropriate mode as necessary */	if((flags &= SF_RDWR) )	{	if(!set)		{	if(flags == SF_READ)				flags = SF_WRITE;			else	flags = SF_READ;		}		if((flags == SF_WRITE && !(f->mode&SF_WRITE)) ||		   (flags == SF_READ && !(f->mode&(SF_READ|SF_SYNCED))) )			(void)_sfmode(f,flags,1);	}	/* if not shared or unseekable, public means nothing */	if(!(f->flags&SF_SHARE) || f->extent < 0)		f->flags &= ~SF_PUBLIC;	SFOPEN(f,0);	SFMTXRETURN(f, (oflags&SF_FLAGS));}

⌨️ 快捷键说明

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