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

📄 streams.c

📁 一个内存数据库的源代码这是服务器端还有客户端
💻 C
📖 第 1 页 / 共 2 页
字号:
stream_read_string(str *res, Stream *S){	stream *s = *(stream **) S;	ssize_t len = 0;	size_t size = CHUNK +1;	char *buf = GDKmalloc(size), *start = buf;	while ((len = stream_read(s, start, 1, CHUNK)) > 0) {		size += len;		buf = GDKrealloc(buf, size);		start = buf + size - CHUNK -1;		*start = '\0';	}	if (len < 0)		return GDK_FAIL;	start += len;	*start = '\0';	*res = buf;	return GDK_SUCCEED;}intstream_flush_stream(Stream *S){	stream *s = *(stream **) S;	if (stream_flush(s))		return GDK_FAIL;	return GDK_SUCCEED;}intstream_close_stream(Stream *S){	close_stream(*(stream **) S);	return GDK_SUCCEED;}intopen_block_stream(Stream *S, Stream *is){	if ((*(stream **) S = block_stream(*(stream **) is)) == NULL) {		return GDK_FAIL;	} else {		return GDK_SUCCEED;	}}intbstream_create_wrap(Bstream *BS, Stream *S, int *bufsize){	if ((*(bstream **) BS = bstream_create(*(stream **) S, (size_t) * bufsize)) == NULL) {		return GDK_FAIL;	} else {		return GDK_SUCCEED;	}}intbstream_destroy_wrap(Bstream *BS){	bstream_destroy(*(bstream **) BS);	return GDK_SUCCEED;}intbstream_read_wrap(int *res, Bstream *BS, int *size){	*res = (int) bstream_read(*(bstream **) BS, (size_t) * size);	return GDK_SUCCEED;}#line 332 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"#include "mal_exception.h"#line 324 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"streams_export str stream_open_rstreamwrap( Stream *S, str *filename );str stream_open_rstreamwrap( Stream *S, str *filename ){	if( stream_open_rstream(S, *filename)== GDK_SUCCEED)		return MAL_SUCCEED;	throw(IO, "streams.open", "Could not open file");}#line 334 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"#line 324 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"streams_export str stream_open_wstreamwrap( Stream *S, str *filename );str stream_open_wstreamwrap( Stream *S, str *filename ){	if( stream_open_wstream(S, *filename)== GDK_SUCCEED)		return MAL_SUCCEED;	throw(IO, "streams.open", "Could not open file");}#line 335 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"#line 324 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"streams_export str stream_open_rastreamwrap( Stream *S, str *filename );str stream_open_rastreamwrap( Stream *S, str *filename ){	if( stream_open_rastream(S, *filename)== GDK_SUCCEED)		return MAL_SUCCEED;	throw(IO, "streams.open", "Could not open file");}#line 336 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"#line 324 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"streams_export str stream_open_wastreamwrap( Stream *S, str *filename );str stream_open_wastreamwrap( Stream *S, str *filename ){	if( stream_open_wastream(S, *filename)== GDK_SUCCEED)		return MAL_SUCCEED;	throw(IO, "streams.open", "Could not open file");}#line 337 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"#line 347 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"#line 341 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"streams_export str stream_stream_rstreamwrap(Stream *sout, Stream *sin);str stream_stream_rstreamwrap(Stream *sout, Stream *sin){	*(stream**)sout = stream_rstream(*(stream**)sin);	return MAL_SUCCEED;}#line 347 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"#line 341 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"streams_export str stream_stream_wstreamwrap(Stream *sout, Stream *sin);str stream_stream_wstreamwrap(Stream *sout, Stream *sin){	*(stream**)sout = stream_wstream(*(stream**)sin);	return MAL_SUCCEED;}#line 348 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"#line 358 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"#line 351 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"streams_export str stream_socket_rstreamwrap( Stream *S, int *socket, str *name );str stream_socket_rstreamwrap( Stream *S, int *socket, str *name ){	if( stream_socket_rstream(S,socket,*name) == GDK_SUCCEED)		return MAL_SUCCEED;	throw(IO, "streams.socket","Could not open socket");}#line 358 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"#line 351 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"streams_export str stream_socket_wstreamwrap( Stream *S, int *socket, str *name );str stream_socket_wstreamwrap( Stream *S, int *socket, str *name ){	if( stream_socket_wstream(S,socket,*name) == GDK_SUCCEED)		return MAL_SUCCEED;	throw(IO, "streams.socket","Could not open socket");}#line 359 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"#line 351 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"streams_export str stream_socket_rastreamwrap( Stream *S, int *socket, str *name );str stream_socket_rastreamwrap( Stream *S, int *socket, str *name ){	if( stream_socket_rastream(S,socket,*name) == GDK_SUCCEED)		return MAL_SUCCEED;	throw(IO, "streams.socket","Could not open socket");}#line 360 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"#line 351 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"streams_export str stream_socket_wastreamwrap( Stream *S, int *socket, str *name );str stream_socket_wastreamwrap( Stream *S, int *socket, str *name ){	if( stream_socket_wastream(S,socket,*name) == GDK_SUCCEED)		return MAL_SUCCEED;	throw(IO, "streams.socket","Could not open socket");}#line 361 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/modules/atoms/streams.mx"strstream_write_stringwrap(int *ret, Stream *S, str *data){	(void) ret;	if (stream_write_string(S, *data) == GDK_SUCCEED)		return MAL_SUCCEED;	throw(IO, "streams.writeStr", "Failed to write string");}strstream_writeIntwrap(int *ret, Stream *S, int *data){	(void) ret;	if (stream_writeInt_wrap(S, data) == GDK_SUCCEED)		return MAL_SUCCEED;	throw(IO, "streams.writeInt", "Failed to write int");}strstream_readIntwrap(int *ret, Stream *S){	if (stream_readInt_wrap(ret, S) == GDK_SUCCEED)		return MAL_SUCCEED;	throw(IO, "streams.readInt", "Failed to read int");}strstream_read_stringwrap(str *res, Stream *s){	if (stream_read_string(res, s) == GDK_SUCCEED)		return MAL_SUCCEED;	throw(IO, "streams.readStr", "Failed to read string");}strstream_flush_streamwrap(int *ret, Stream *s){	(void) ret;	if (stream_flush_stream(s) == GDK_SUCCEED)		return MAL_SUCCEED;	throw(IO, "streams.flush", "Failed to flush a stream");}strstream_close_streamwrap(int *ret, Stream *s){	(void) ret;	if (stream_close_stream(s) == GDK_SUCCEED)		return MAL_SUCCEED;	throw(IO, "streams.close", "Failed to close a stream");}stropen_block_streamwrap(Stream *S, Stream *is){	if (open_block_stream(S, is) == GDK_SUCCEED)		return MAL_SUCCEED;	throw(IO, "bstreams.open", "Failed to open a blocked stream");}strbstream_create_wrapwrap(Bstream *Bs, Stream *S, int *bufsize){	if (bstream_create_wrap(Bs, S, bufsize) == GDK_SUCCEED)		return MAL_SUCCEED;	throw(IO, "bstreams.create", "Failed to create a blocked stream");}strbstream_destroy_wrapwrap(int *ret, Bstream *BS){	(void) ret;	bstream_destroy_wrap(BS);	return MAL_SUCCEED;}strbstream_read_wrapwrap(int *res, Bstream *BS, int *size){	bstream_read_wrap(res, BS, size);	return MAL_SUCCEED;}

⌨️ 快捷键说明

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