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

📄 sfnputc.c

📁 su 的源代码库
💻 C
字号:
/* Copyright (c) Colorado School of Mines, 2006.*//* All rights reserved.                       */#include	"sfhdr.h"/*	Write out a character n times****	Written by Kiem-Phong Vo.*/#if __STD_Cssize_t sfnputc(reg Sfio_t* f, reg int c, reg size_t n)#elsessize_t sfnputc(f,c,n)reg Sfio_t*	f;	/* file to write */reg int		c;	/* char to be written */reg size_t	n;	/* number of time to repeat */#endif{	reg uchar*	ps;	reg ssize_t	p, w;	uchar		buf[128];	reg int		local;	SFMTXSTART(f,-1);	GETLOCAL(f,local);	if(SFMODE(f,local) != SF_WRITE && _sfmode(f,SF_WRITE,local) < 0)		SFMTXRETURN(f, -1);	SFLOCK(f,local);	/* write into a suitable buffer */	if((size_t)(p = (f->endb-(ps = f->next))) < n)		{ ps = buf; p = sizeof(buf); }	if((size_t)p > n)		p = n;	MEMSET(ps,c,p);	ps -= p;	w = n;	if(ps == f->next)	{	/* simple sfwrite */		f->next += p;		if(c == '\n')			(void)SFFLSBUF(f,-1);		goto done;	}	for(;;)	{	/* hard write of data */		if((p = SFWRITE(f,(Void_t*)ps,p)) <= 0 || (n -= p) <= 0)		{	w -= n;			goto done;		}		if((size_t)p > n)			p = n;	}done :	SFOPEN(f,local);	SFMTXRETURN(f, w);}

⌨️ 快捷键说明

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