|
|
1.1 root 1:
2:
3: buffer Definition buffer
4:
5:
6:
7:
8: A buffer is a portion of memory set aside to hold data read from
9: or to be written to another process or device. Often, although
10: not always, this involves setting aside a portion of the arena
11: with malloc or its related functions.
12:
13: Buffering, and problems therewith, are encountered most often
14: when using the standard input and output (STDIO) routines. Many
15: operating systems (including COHERENT) automatically place data
16: from a peripheral device into a buffer. Buffers normally can be
17: cleared with fflush, by pressing the carriage return key on
18: routines that perform input, or by sending a newline character on
19: routines that perform output. The function fclose, which closes
20: a file stream, flushes all buffers associated with that stream.
21: exit calls fclose.
22:
23: Combining unbuffered and buffered I/O functions on the same file
24: or device within one program will produce results that are at
25: best unpredictable.
26:
27: ***** Example *****
28:
29: The following example demonstrates what does and does not happen
30: when you use fffflluusshh with the output buffer.
31:
32:
33: #include <stdio.h>
34: main()
35: {
36: extern char *malloc();
37: char *buffer;
38:
39:
40:
41: /* use malloc() to create a 120-char buffer */
42: if ((buffer = malloc(120)) == NULL) {
43: /* if malloc() fails, bail out */
44: fprintf(stderr, "malloc failed\n");
45: exit(1);
46: }
47:
48:
49:
50: printf("Type your name: ");
51: fflush(stdout);
52: gets(buffer);
53: printf("Your name is %s\n", buffer);
54: }
55:
56:
57: ***** See Also *****
58:
59: arena, array, close, definitions, exit, fflush, malloc, STDIO
60:
61:
62:
63:
64: COHERENT Lexicon Page 1
65:
66:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.