📄 streams.c
字号:
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 + -