Lines Matching defs:stream

63  * Definition of a seekable, write-only memory stream.
84 static int ensureCapacity(MemStream* stream, int writeSize)
86 DBUG(("+++ ensureCap off=%d size=%d\n", stream->offset, writeSize));
88 size_t neededSize = stream->offset + writeSize + 1;
89 if (neededSize <= stream->allocSize)
94 if (stream->allocSize == 0) {
97 newSize = stream->allocSize;
104 stream->bufp, *stream->bufp, newSize));
105 char* newBuf = (char*) realloc(*stream->bufp, newSize);
109 *stream->bufp = newBuf;
110 stream->allocSize = newSize;
123 MemStream* stream = (MemStream*) cookie;
125 if (ensureCapacity(stream, size) < 0)
129 if (stream->eof < stream->offset) {
131 stream->eof, stream->offset-1));
132 memset(*stream->bufp + stream->eof, '\0',
133 stream->offset - stream->eof);
137 memcpy(*stream->bufp + stream->offset, buf, size);
138 stream->offset += size;
140 if (stream->offset > stream->eof) {
142 DBUG(("+++ EOF advanced to %d, appending nul\n", stream->offset));
143 assert(stream->offset < stream->allocSize);
144 stream->eof = stream->offset;
148 *(*stream->bufp + stream->offset), stream->offset));
149 stream->saved = *(*stream->bufp + stream->offset);
151 *(*stream->bufp + stream->offset) = '\0';
152 *stream->sizep = stream->offset;
164 MemStream* stream = (MemStream*) cookie;
168 newPosn += stream->offset;
170 newPosn += stream->eof;
180 if (stream->offset < stream->eof) {
186 stream->saved, stream->offset));
187 *(*stream->bufp + stream->offset) = stream->saved;
190 stream->offset = (size_t) newPosn;
192 if (stream->offset < stream->eof) {
194 * We're seeked backward into the stream. Preserve the character
197 stream->saved = *(*stream->bufp + stream->offset);
198 *(*stream->bufp + stream->offset) = '\0';
199 *stream->sizep = stream->offset;
205 *stream->sizep = stream->eof;
226 MemStream* stream;
233 stream = (MemStream*) calloc(1, sizeof(MemStream));
234 if (stream == NULL)
237 fp = funopen(stream,
240 free(stream);
246 stream->bufp = bufp;
247 stream->sizep = sizep;
269 * fp = fopencookie(stream, "w", iofuncs);
276 FILE *stream;
284 stream = open_memstream(&buf, &len);
285 fprintf(stream, "hello my world");
286 fflush(stream);
288 eob = ftello(stream);
289 fseeko(stream, 0, SEEK_SET);
290 fprintf(stream, "good-bye");
291 fseeko(stream, eob, SEEK_SET);
292 fclose(stream);
299 stream = open_memstream(&buf, &len);
300 fprintf(stream, "hello my world");
301 fflush(stream);
303 eob = ftello(stream);
304 fseeko(stream, 0, SEEK_SET);
305 fprintf(stream, "good-bye");
306 //fseeko(stream, eob, SEEK_SET);
307 fclose(stream);
321 stream = open_memstream (&buf, &len);
322 setvbuf(stream, NULL, _IONBF, 0); /* note: crashes in glibc with this */
323 fprintf(stream, "This-is-a-test");
324 fseek(stream, -1, SEEK_CUR); /* broken in glibc; can use {13,SEEK_SET} */
325 fprintf(stream, "1234");
326 fseek(stream, 1022, SEEK_SET);
327 fputc('a', stream);
328 fputc('b', stream);
329 fputc('c', stream);
330 fputc('d', stream);
331 fputc('e', stream);
332 fputc('f', stream);
333 fflush(stream);
342 stream = open_memstream (&buf, &len);
343 fseek(stream, 5000, SEEK_SET);
344 fseek(stream, 4096, SEEK_SET);
345 fseek(stream, -1, SEEK_SET); /* should have no effect */
346 fputc('x', stream);
347 if (ftell(stream) == 4097)
350 printf("BAD: offset is %ld\n", ftell(stream));