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

📄 htfwrite.c

📁 www工具包. 这是W3C官方支持的www支撑库. 其中提供通用目的的客户端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
💻 C
字号:
/*							       	    HTFWrite.c**	BASIC FILE WRITER STREAM****	(c) COPYRIGHT MIT 1995.**	Please first read the full copyright statement in the file COPYRIGH.**	@(#) $Id: HTFWrite.c,v 2.46 1999/02/22 22:10:11 frystyk Exp $****	This version of the stream object just writes to a C file.**	The file is assumed open and left open.****	Bugs:**		strings written must be less than buffer size.****      History:**         HFN: wrote it**         HWL: converted the caching scheme to be hierachical by taking**              AL code from Deamon**	   HFN: moved cache code to HTCache module***//* Library include files */#include "wwwsys.h"#include "WWWUtil.h"#include "WWWCore.h"#include "HTFWrite.h"					 /* Implemented here */struct _HTStream {    const HTStreamClass *isa;    FILE *		fp;    BOOL		leave_open;		    /* Close file when free? */};/* ------------------------------------------------------------------------- */PRIVATE int HTFWriter_put_character (HTStream * me, char c){    return (fputc(c, me->fp) == EOF) ? HT_ERROR : HT_OK;}PRIVATE int HTFWriter_put_string (HTStream * me, const char* s){    if (*s)				             /* For vms :-( 10/04-94 */	return (fputs(s, me->fp) == EOF) ? HT_ERROR : HT_OK;    return HT_OK;}PRIVATE int HTFWriter_flush (HTStream * me){    return (fflush(me->fp) == EOF) ? HT_ERROR : HT_OK;}PRIVATE int HTFWriter_write (HTStream * me, const char* s, int l){    int status ;    status = (fwrite(s, 1, l, me->fp) != l) ? HT_ERROR : HT_OK ;    if (l > 1 && status == HT_OK) (void) HTFWriter_flush(me);    return status ;}PRIVATE int HTFWriter_free (HTStream * me){    if (me) {	if (me->leave_open != YES)	    fclose(me->fp);	else	    HTFWriter_flush(me);	HT_FREE(me);    }    return HT_OK;}PRIVATE int HTFWriter_abort (HTStream * me, HTList * e){    HTTRACE(STREAM_TRACE, "FileWriter.. ABORTING...\n");    if (me) {	if (me->leave_open != YES) fclose(me->fp);	HT_FREE(me);    }    return HT_ERROR;}PRIVATE const HTStreamClass HTFWriter = /* As opposed to print etc */{		    "FileWriter",    HTFWriter_flush,    HTFWriter_free,    HTFWriter_abort,    HTFWriter_put_character,    HTFWriter_put_string,    HTFWriter_write};PUBLIC HTStream * HTFWriter_new (HTRequest * request, FILE * fp,				 BOOL leave_open){    HTStream * me = NULL;    if (!fp) {	HTTRACE(STREAM_TRACE, "FileWriter.. Bad file descriptor\n");	return HTErrorStream();    }    if ((me = (HTStream *) HT_CALLOC(1, sizeof(HTStream))) == NULL)        HT_OUTOFMEM("HTFWriter_new");    me->isa = &HTFWriter;           me->fp = fp;    me->leave_open = leave_open;    return me;}

⌨️ 快捷键说明

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